XMNPhotoPickerKit - 選擇圖片視頻

思路

  1. 為了兼容iOS7(AssetsLibaray),iOS8+(PhotoKit),統(tǒng)一使用一個單例類 XMNPhotoManager 來獲取圖片
  2. 使用XMNAssetModelXMNAlbumModel 封裝下獲取的result
  3. 自定義XMNPhotoPickerController繼承UINavigationController 來作為選擇圖片的入口

1. XMNPhotoPickerKit

1.1 照片管理Manager

1.1.1 相關(guān)類

1.1.1.1. XMNAlbumModel : 專輯信息
屬性 屬性說明 作用
name album 名稱
count 照片數(shù)量
result 包含的圖片數(shù)組,PHFetchResult<PHAsset> or ALAssetsGroup<ALAsset>
方法 方法說明 作用
albumWithResult: Class方法 通過獲取的PHFetchResult<PHAsset> or ALAssetsGroup<ALAsset>
setName: 重寫name的setter方法 設(shè)置name為中文字符串
1.1.1.2. XMNAssetModel : 照片,視頻等信息
屬性 屬性說明 作用
asset 資源類型,PHAsset or ALAsset
selected 是否被選中
type readonly 圖片,視頻,livePhoto,audio等
timeLength readonly 視頻長度
originImage readOnly 原圖
thumbnail readonly 縮略圖,默認(rèn)大小的縮略圖
previewImage readonly 適合當(dāng)前屏幕的預(yù)覽圖
imageOrientation readonly 圖片方向
1.1.1.3. XMNPhotoManager : 獲取所有專輯,專輯內(nèi)照片視頻等
  • iOS6,7 使用AssetsLibaray iOS8+使用PhotoKit
  • 使用單例模式,并且iOS8+使用了PHCachingImageManager在獲取圖片的時候緩存,保證XMNPhotoCollectionController的滑動流暢
方法 方法說明 作用
hasAuthorized classMethods 判斷是否授權(quán)
requestOriginImageWithAsset:WithCompletion: 方法 獲取asset的原圖
requestThumbnailWithAsset:WithCompletion: 方法 獲取asset的對應(yīng)的縮略圖
requestPreviewImageWithAsset:WithCompletion: 方法 獲取asset對應(yīng)的預(yù)覽圖,適應(yīng)當(dāng)前屏幕的尺寸
imageOrientationWithAsset:WithCompletion: 方法 獲取對應(yīng)asset的圖片方向

1.2 照片選擇ViewController

1.2.1 XMNPhotoPickerController

  • 繼承UINavigationController
  • 默認(rèn)rootController是XMNAlbumListController
  • 除了didCancelPickingBlock 會自動dismiss XMNPhotoPickerController,其他回調(diào)方式均不會自動dismiss,需要手動dismiss
屬性 屬性說明 作用
pickingVideoEnable 是否允許選擇視頻
autoPushToPhotoCollection 是否自動push到photoCollectionController界面
maxCount 最大選擇數(shù)量 ,默認(rèn)視頻一次只能選擇一個,默認(rèn)選擇9個
photoPickerDelegate delegate 回調(diào) 方式
didFinishPickingPhotosBlock 確定選擇圖片的block回調(diào)方式
didFinishPickingVideoBlock 確定選擇視頻的block回調(diào)方式
didCancelPickingBlock readonly 確定取消選擇的回調(diào)方式
方法 方法說明 作用
- (instancetype)initWithMaxCount:(NSUInteger)maxCount delegate:(id<XMNPhotoPickerControllerDelegate>)delegate NS_DESIGNATED_INITIALIZER; 初始化方法 初始化XMNPhotoPickerController
- (void)didFinishPickingPhoto:(NSArray<XMNAssetModel *> *)assets; public方法 提供給viewControllers 回調(diào),會調(diào)用自身delegate以及block 的對應(yīng)回調(diào)
- (void)didFinishPickingVideo:(XMNAssetModel *)asset; public方法 提供給viewControllers 喚起對應(yīng)delegate,block 回調(diào)
- (void)didCancelPickingPhoto public方法 提供給viewControllers 喚起對應(yīng)delegate,block回調(diào)
1.2.2 XMNAlbumListController
  • 繼承UITableViewController
  • 使用tableView 展示album相冊列表
  • 點(diǎn)擊后跳轉(zhuǎn)到XMNPhotoCollectionController界面

1.3 XMNPhotoPicker - 模仿QQ選擇照片的Sheet,使用block回調(diào)

  • 推薦使用單例sharePhotoPicker
  • 支持手勢滑動發(fā)送圖片
  • 支持預(yù)覽圖片 - XMNPhotoPreviewController 視頻-XMNVideoPreviewController
  • 支持使用系統(tǒng)相機(jī)拍照發(fā)送圖片
  • iOS8+支持動態(tài)監(jiān)測系統(tǒng)圖片變化

1.4 照片預(yù)覽XMNPhotoPreviewController 繼承UICollectionController

  • 繼承UICollectionViewController
  • 實(shí)現(xiàn)block 回調(diào)

1.5 視頻預(yù)覽XMNVideoPreviewController

  • 繼承UIViewController
  • 實(shí)現(xiàn)block回調(diào)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,142評論 4 61
  • 人去世以后哭真是世界上最無用的事情之一!哭給誰看呢給活著的別人看!哭的動靜越大就越孝順別人會說這家人真是孝順啊...
    biubiuboomboom閱讀 383評論 0 1
  • 國慶節(jié),在這個舉國同慶的日子,多少年前的這一天,一位老人宣布中華人民共和國成立了!是多么的富有劃時代的意義!從此,...
    想飛的樹不如草閱讀 638評論 0 3

友情鏈接更多精彩內(nèi)容