首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Photokit保留用户相册列表顺序

Photokit保留用户相册列表顺序
EN

Stack Overflow用户
提问于 2015-06-11 02:16:07
回答 2查看 802关注 0票数 9

有没有任何方法来保持列表顺序,用户已经安排了他们的所有相册在照片应用程序?我一整天都在试着修复这个问题,我似乎不知道我错过了什么来保留在我的应用程序中显示的顺序。

我想保留这个顺序,因为用户可以在Photos应用程序中重新排列他们的相册,所以我希望我的UI与列表顺序相匹配。

用于设置列表的代码:

代码语言:javascript
复制
PHFetchResult *smartAlbumFetchResult = [PHAssetCollection fetchAssetCollectionsWithType:
PHAssetCollectionTypeSmartAlbum subtype:PHAssetCollectionSubtypeAny options:nil];

PHFetchResult *albumFetchResult = [PHAssetCollection fetchAssetCollectionsWithType:
PHAssetCollectionTypeAlbum subtype:PHAssetCollectionSubtypeAny options:nil];

NSArray *collectionFetches = @[smartAlbumFetchResult, albumFetchResult];

NSMutableArray *albumArray = [NSMutableArray new];

for (PHFetchResult *newFetch in collectionFetches)
{
    for (PHAssetCollection *sub in newFetch)
    {
        [albumArray addObject:sub];
         // Other setup omitted
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-19 21:50:23

对不起,但我不认为这实际上是可能的(我希望在一些升级)。

实际上,可以使用PHFetchOptions对资产集合进行排序,但是PhotoKit只支持谓词和sortDescriptors属性的一组受限键(请参阅PHFetchOptions),在这两者之间,我看不到用户在Photos应用程序中所安排的列表顺序的键。

票数 5
EN

Stack Overflow用户

发布于 2015-06-17 19:34:34

您不能在PHAssetCollection类中创建一个考虑到订单的属性吗?这样,您就可以根据属性显示它们。

一个非常简单的例子,如果类包含1-n中的一个数字,基于这个数字,您知道要显示哪个类/照片?(或者根据该属性对它们进行排序,您可以在排序之后循环)。

@编辑简单示例:

在类PHAssetCollection中,在.h文件中声明一个属性。

代码语言:javascript
复制
@property (retain, nonatomic) NSInteger id;

在PHAssetCollection文件中的类.m中,您可以在初始化器方法中填充它。如果你想在.m文件中使用他,你必须合成他。你可以选择随时随地填补,这取决于你的需求。我可以想象他们得到了一个标准的id,当一个用户拖动一张照片时,它会在上面设置一个新的id。

您可以根据以下内容对列表进行排序,实现比较方法并调用比较功能:

代码语言:javascript
复制
//Implement
- (NSComparisonResult)compare:(PHAssetCollection *)otherPhoto{
    return [self.id compare:otherPhoto.id];
}

//Call method
NSMutableArray *sortedArray;
sortedArray = [sub sortedArrayUsingSelector:@selector(compare:)];

要做到这一点有很多种方法。另一个更复杂的方法是跟踪后台的顺序,而不是每次更改顺序时都更改id。调用ApplicationWillTerminate或ApplicationDidEnterBackground时,您将根据照片的顺序更改照片的id。这样,您只需要更改id一次,这将为您节省一些性能。

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

https://stackoverflow.com/questions/30770453

复制
相关文章

相似问题

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