我到处都找过了,但没能找到答案。
在IOS PhotosFramework中,我如何获取图像/PHAsset,并找出它分配给哪些集合/相册?
我已经知道如何从那里得到所有相册的列表,我也可以在每一张相册中得到所有的图像。但是我如何做相反的方法--例如,对于给定的PHAsset,如何获取分配给它的专辑/集合的名称。
下面是我必须在相机卷中获得所有相册列表的代码:
-(void) listAllAlbums{
PHFetchOptions *userAlbumsOptions = [PHFetchOptions new];
userAlbumsOptions.predicate = [NSPredicate predicateWithFormat:@"estimatedAssetCount > 0"];
PHFetchResult *userAlbums = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeAlbum subtype:PHAssetCollectionSubtypeAny options:userAlbumsOptions];
NSLog(@"--------- entered %s ------------- ", __PRETTY_FUNCTION__);
[userAlbums enumerateObjectsUsingBlock:^(PHAssetCollection *collection, NSUInteger idx, BOOL *stop) {
NSLog(@"album title %@", collection.localizedTitle);
}];
NSLog(@"--------- end of %s ------------- ", __PRETTY_FUNCTION__);
}谢谢
发布于 2016-08-10 15:02:50
套用旧苹果广告..。这有一个API。
如果您有一个PHAsset,您可以使用fetchAssetCollectionsContainingAsset:withType:options:获得包含它的一组专辑。如果您只想要用户创建的相册,请为PHAssetCollectionTypeAlbum参数传递type;如果您还想要智能相册(比如相机卷,或者其他自动收集的相册,如全景图或截图),那么再次调用它并传递PHAssetCollectionTypeSmartAlbum。
调用它之后,您可以枚举结果并读取每个结果的localizedTitle。(顺便说一句,PHFetchResult支持NSFastEnumeration,所以您不必使用enumerateObjectsUsingBlock,除非您出于某种原因想要使用.您可以只使用for-in循环。)
https://stackoverflow.com/questions/38737492
复制相似问题