首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用iOS照片框架,我如何列出所有可用的PHAssetCollections?

使用iOS照片框架,我如何列出所有可用的PHAssetCollections?
EN

Stack Overflow用户
提问于 2015-03-10 18:25:04
回答 2查看 11.3K关注 0票数 6

使用iOS照片框架,我如何列出所有可用的PHAssetCollections?我想找到"Photo Roll“集合,这样我就可以检索该集合中的所有照片,特别是。如何使用新的PhotosFramework在iOS 8+中做到这一点?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-16 23:08:54

如果你查看PhotoTypes,你可以看到相机卷轴没有包括在PH中,你可以通过以下方式访问它

代码语言:javascript
复制
PHFetchResult *result = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeSmartAlbum
                                                               subtype:PHAssetCollectionSubtypeSmartAlbumUserLibrary
                                                               options:nil];
PHAssetCollection *assetCollection = result.firstObject;
NSLog(@"%@", assetCollection.localizedTitle);  // Camera Roll

一般来说,这就是如何获得一切的方法

代码语言:javascript
复制
PHFetchOptions *options = [[PHFetchOptions alloc] init];
options.wantsIncrementalChangeDetails = YES;
options.predicate = [NSPredicate predicateWithFormat:@"mediaType == %d",PHAssetMediaTypeImage];

PHFetchResult *albums = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeSmartAlbum subtype:PHAssetCollectionSubtypeAlbumRegular options:nil];
for (PHAssetCollection *sub in albums)
{
    PHFetchResult *fetchResult = [PHAsset fetchAssetsInAssetCollection:sub options:options];
}

#pragma mark - PHAssetCollection types

typedef NS_ENUM(NSInteger, PHAssetCollectionType) {
  PHAssetCollectionTypeAlbum      = 1,
  PHAssetCollectionTypeSmartAlbum = 2,
  PHAssetCollectionTypeMoment     = 3,
} NS_ENUM_AVAILABLE_IOS(8_0);

typedef NS_ENUM(NSInteger, PHAssetCollectionSubtype) {

// PHAssetCollectionTypeAlbum regular subtypes
PHAssetCollectionSubtypeAlbumRegular         = 2,
PHAssetCollectionSubtypeAlbumSyncedEvent     = 3,
PHAssetCollectionSubtypeAlbumSyncedFaces     = 4,
PHAssetCollectionSubtypeAlbumSyncedAlbum     = 5,
PHAssetCollectionSubtypeAlbumImported        = 6,

// PHAssetCollectionTypeAlbum shared subtypes
PHAssetCollectionSubtypeAlbumMyPhotoStream   = 100,
PHAssetCollectionSubtypeAlbumCloudShared     = 101,

// PHAssetCollectionTypeSmartAlbum subtypes
PHAssetCollectionSubtypeSmartAlbumGeneric    = 200,
PHAssetCollectionSubtypeSmartAlbumPanoramas  = 201,
PHAssetCollectionSubtypeSmartAlbumVideos     = 202,
PHAssetCollectionSubtypeSmartAlbumFavorites  = 203,
PHAssetCollectionSubtypeSmartAlbumTimelapses = 204,
PHAssetCollectionSubtypeSmartAlbumAllHidden  = 205,
PHAssetCollectionSubtypeSmartAlbumRecentlyAdded = 206,
PHAssetCollectionSubtypeSmartAlbumBursts     = 207,
PHAssetCollectionSubtypeSmartAlbumSlomoVideos = 208,
PHAssetCollectionSubtypeSmartAlbumUserLibrary = 209,

// Used for fetching, if you don't care about the exact subtype
PHAssetCollectionSubtypeAny = NSIntegerMax
} NS_ENUM_AVAILABLE_IOS(8_0);
票数 6
EN

Stack Overflow用户

发布于 2015-03-10 19:39:02

使用下面给定的代码片段来获取所有智能相册和所有智能照片

代码语言:javascript
复制
// Get all Smart Albums 
  PHFetchResult *smartAlbums = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeSmartAlbum subtype:PHAssetCollectionSubtypeAlbumRegular options:nil];

 [smartAlbums enumerateObjectsUsingBlock:^(PHAssetCollection *collection, NSUInteger idx, BOOL *stop) {
    NSLog(@"album title %@", collection.localizedTitle);
}];


//    Get all photos
PHFetchResult *allPhotosResult = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeImage options:nil];


//   Get assets from the PHFetchResult object
[allPhotosResult enumerateObjectsUsingBlock:^(PHAsset *asset, NSUInteger idx, BOOL *stop) {
   NSLog(@"asset %@", asset);
   CGSize size=CGSizeMake(90, 90);
   PHImageManager *imageManager;
   [imageManager requestImageForAsset:asset targetSize:size contentMode:PHImageContentModeAspectFit options:nil resultHandler:^(UIImage *result, NSDictionary *info) {
           yourImageView.image=result;

       }];
}];

参考:https://developer.apple.com/library/prerelease/ios/samplecode/UsingPhotosFramework/Introduction/Intro.html

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28961205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档