最近有點(diǎn)小忙,天天都在敲代碼。學(xué)到了一大堆東西,后期我會和大家一起分享的。本期我主要是想將上期未完成的補(bǔ)全,所以本期整理的是PhotoKit的相關(guān)內(nèi)容。
PhotoKit組成######
- PHAsset: 代表照片庫中的一個資源,跟 ALAsset 類似,通過 PHAsset 可以獲取和保存資源
- PHFetchOptions: 獲取資源時的參數(shù),可以傳 nil,即使用系統(tǒng)默認(rèn)值
- PHFetchResult: 表示一系列的資源集合,也可以是相冊的集合
- PHAssetCollection: 表示一個相冊或者一個時刻,或者是一個「智能相冊(系統(tǒng)提供的特定的一系列相冊,例如:最近刪除,視頻列表,收藏等等,如下圖所示)
- PHImageManager: 用于處理資源的加載,加載圖片的過程帶有緩存處理,可以通過傳入一個 PHImageRequestOptions 控制資源的輸出尺寸等規(guī)格
- PHImageRequestOptions: 如上面所說,控制加載圖片時的一系列參數(shù)
// 列出所有相冊智能相冊
PHFetchResult *smartAlbums = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeSmartAlbum subtype:PHAssetCollectionSubtypeAlbumRegular options:nil];
// 列出所有用戶創(chuàng)建的相冊
PHFetchResult *topLevelUserCollections = [PHCollectionList fetchTopLevelUserCollectionsWithOptions:nil];
// 獲取所有資源的集合,并按資源的創(chuàng)建時間排序
PHFetchOptions *options = [[PHFetchOptions alloc] init];
options.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"creationDate" ascending:YES]];
PHFetchResult *assetsFetchResults = [PHAsset fetchAssetsWithOptions:options];
// 在資源的集合中獲取第一個集合,并獲取其中的圖片
PHCachingImageManager *imageManager = [[PHCachingImageManager alloc] init];
PHAsset *asset = assetsFetchResults[0];
[imageManager requestImageForAsset:asset
targetSize:SomeSize
contentMode:PHImageContentModeAspectFill
options:nil
resultHandler:^(UIImage *result, NSDictionary *info) {
// 得到一張 UIImage,展示到界面上
}];
具體信息詳見http://kayosite.com/ios-development-and-detail-of-photo-framework.html
這里面寫的很全。
下一期我將整理目前做項(xiàng)目遇到的問題分享給大家。