使用 Apple IOS Photokit 对共享相册进行排序

Sorting Shared Albums with the Apple IOS Photokit

在我做了很多没有结果的实验​​之前,有谁知道你是否可以使用 Apple Photokit 对共享相册进行排序。我知道本机照片应用程序无法。

据我从你的问题中了解到,你想根据添加资产的时间戳进行排序。试试这个:

_assets = [[NSArray alloc] init];

PHFetchOptions *options = [[PHFetchOptions alloc] init];
//Sort according to date
options.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"creationDate" ascending:NO]];
//If you want just images
options.predicate = [NSPredicate predicateWithFormat:@"mediaType == %d", PHAssetMediaTypeImage];
//Each album is an assetCollection
PHFetchResult *fetchResult = [PHAsset fetchAssetsInAssetCollection:self.assetsCollection options:options];
_assets = fetchResult;

您可以按任何 PHAsset 键(媒体类型、持续时间等)排序。

_assets = [[NSArray alloc] init];
PHFetchOptions *options = [[PHFetchOptions alloc] init];
//Sort according to date
options.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"{PHAsset.key}" ascending:NO]];
//For example
options.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"mediaType" ascending:NO]];
//If you want just images
options.predicate = [NSPredicate predicateWithFormat:@"mediaType == %d", PHAssetMediaTypeImage];
//If you want just videos
options.predicate = [NSPredicate predicateWithFormat:@"mediaType == %d", PHAssetMediaTypeImage];
//If you want both videos and photos
// leave predicate as-is
//Each album is an assetCollection
PHFetchResult *fetchResult = [PHAsset fetchAssetsInAssetCollection:self.assetsCollection options:options];
_assets = fetchResult;

因此,您可以对相册或 PHAssetCollections 执行相同的操作:

 let options = PHFetchOptions()
//Sort according to date
options.sortDescriptors = [NSSortDescriptor(@"{PHAssetCollection.key}" ascending:true]
//Query collection with sort descriptor
let result:PHFetchResult = PHAssetCollection.fetchAssetCollectionsWithType(PHAssetCollectionType.Album, subtype: PHAssetCollectionSubtype.AlbumCloudShared, options: nil)