自定義相冊邏輯

Photos.framework的使用理解

  • PHPhotoLibrary 是一個(gè)資源庫。能夠獲取相冊權(quán)限以及對相冊的操作

  • PHAssetCollection是一個(gè)資源集合對象,相當(dāng)于一個(gè)相冊的概念,通過類方法可以獲得想要的相冊集合.
    //獲取最基本的智能分組
    //得到的smartGroups,就是相冊集合,通過遍歷可以獲得相冊
    PHFetchResult * smartGroups = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeSmartAlbum subtype:PHAssetCollectionSubtypeAlbumRegular options:nil];

  • PHFetchResult 是一個(gè)結(jié)果集,一個(gè)泛型類.通過方法獲取到的相冊或者資源組就是被封裝成該類返回.通過遍歷上述的smartGroups,可以得到PHAssetCollection的數(shù)組.
    //array就是相冊集合
    NSMutableArray <PHAssetCollection > array = [NSMutableArray arrayWithCapacity:0];
    //通過遍歷smartGroups,將得到的PHAssetCollection放入一個(gè)數(shù)組中
    [smartGroups enumerateObjectsUsingBlock:^(PHAssetCollection _Nonnull * obj, NSUInteger idx, BOOL * _Nonnull stop) {
    [array addObject:obj];
    }];
    //遍歷得到的數(shù)組,將"相冊膠卷"排列到數(shù)組的第一個(gè),(大多數(shù)需求需要其排列在第一個(gè))
    //PHAssetCollection對象的locaizedTitle等于Camera Roll,就是"相冊膠卷"這個(gè)相冊

  • 根據(jù)PHAssetCollection(group)得到PHFetchResult對象,某個(gè)相冊中的所有照片資源
    //每一個(gè)PHAssetCollection對象相當(dāng)于照片數(shù)組,通過將他轉(zhuǎn)為PHFetchResult結(jié)果集,可以拿到每一個(gè)照片對象
    PHFetchResult *result= [PHAsset fetchAssetsInAssetCollection:group options:[[PHFetchOptions alloc]init]]

  • PHAsset 是一個(gè)獨(dú)立的資源對象,可以通過類方法對PHCollection對象進(jìn)行遍歷,獲得存放Asset對象的結(jié)果集,可以直接獲得資源的規(guī)格數(shù)據(jù),若想獲得圖片以及原圖等資源,需要配合PHImageManager對象,繼承自PHObject.
    //對上述result對象根據(jù)下標(biāo)取的PHAsset對象,取出PHAsset中的image對象
    PHAsset *asset = (PHAsset *)[self.assets objectAtIndex:indexPath.row]
    [[PHCachingImageManager defaultManager]requestImageForAsset:asset targetSize:newSize contentMode:PHImageContentModeAspectFill options:nil resultHandler:^(UIImage * _Nullable result, NSDictionary * _Nullable info) {
    //block回調(diào),將image對象傳出去
    }];

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

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

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