IOS 照片库获取给定照片的相册名称
IOS Photo Library fetch album name for a given photo
我到处寻找,但一直找不到答案。
在 IOS PhotosFramework 中,我如何拍摄 image/PHAsset 并找出所有 collections/albums 它分配给了什么?
我已经知道如何从那里获取所有相册的列表,我还可以获取每个相册中的所有图像。但是我该怎么做呢 - 即对于给定的 PHAsset 如何获取分配给它的 Album/Collections 的名称。
这是我必须获取相机胶卷中所有相册列表的代码:
-(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__);
}
谢谢
套用旧的 Apple 广告...有一个 API。
如果您有 PHAsset
,您可以使用 fetchAssetCollectionsContainingAsset:withType:options:
获取包含它的专辑集。如果您只想要用户创建的相册,请为 type
参数传递 PHAssetCollectionTypeAlbum
;如果你还想要智能相册(如相册,或其他自动收集的相册,如全景或截图),再次调用并传递 PHAssetCollectionTypeSmartAlbum
.
调用后,您可以枚举结果并读取每个结果的 localizedTitle
。 (顺便说一下,PHFetchResult
支持 NSFastEnumeration
,所以你不必使用 enumerateObjectsUsingBlock
除非你出于某种原因想要使用......你可以只使用 for
-in
循环。)
我到处寻找,但一直找不到答案。
在 IOS PhotosFramework 中,我如何拍摄 image/PHAsset 并找出所有 collections/albums 它分配给了什么?
我已经知道如何从那里获取所有相册的列表,我还可以获取每个相册中的所有图像。但是我该怎么做呢 - 即对于给定的 PHAsset 如何获取分配给它的 Album/Collections 的名称。
这是我必须获取相机胶卷中所有相册列表的代码:
-(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__);
}
谢谢
套用旧的 Apple 广告...有一个 API。
如果您有 PHAsset
,您可以使用 fetchAssetCollectionsContainingAsset:withType:options:
获取包含它的专辑集。如果您只想要用户创建的相册,请为 type
参数传递 PHAssetCollectionTypeAlbum
;如果你还想要智能相册(如相册,或其他自动收集的相册,如全景或截图),再次调用并传递 PHAssetCollectionTypeSmartAlbum
.
调用后,您可以枚举结果并读取每个结果的 localizedTitle
。 (顺便说一下,PHFetchResult
支持 NSFastEnumeration
,所以你不必使用 enumerateObjectsUsingBlock
除非你出于某种原因想要使用......你可以只使用 for
-in
循环。)