首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何像ALAssetsGroup一样订购iPhoto

如何像ALAssetsGroup一样订购iPhoto
EN

Stack Overflow用户
提问于 2014-03-23 21:28:26
回答 1查看 343关注 0票数 1

我可以通过ALAssetsGroupAlbum枚举并创建一个按相册名称排序的NSMutableArray,如下所示,没有问题。但是,我真正想做的是像iPhone的照片应用程序一样对相册进行排序,按照iPhoto上设定的手动顺序排序,这可能不是按字母顺序排列的。我想知道资产库是否在某个地方保存了这些订单信息。有人知道苹果是怎么做到的吗?谢谢。

代码语言:javascript
复制
ALAssetsLibraryGroupsEnumerationResultsBlock listGroupBlock = ^(ALAssetsGroup *group, BOOL *stop) {

    ALAssetsFilter *onlyPhotosFilter = [ALAssetsFilter allPhotos];
    [group setAssetsFilter:onlyPhotosFilter];
    if ([group numberOfAssets] > 0)
    {
   //     [self.groups addObject:group];
        [self.groups insertObject:group atIndex:0];
    }
    else
    {
        //sort groups by name
          [self.groups sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
              return [[obj1 valueForProperty:ALAssetsGroupPropertyName] localizedCaseInsensitiveCompare:[obj2 valueForProperty:ALAssetsGroupPropertyName]];
          }];

        [self.tableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO];
    }
EN

回答 1

Stack Overflow用户

发布于 2015-12-24 00:35:20

//这对我有用。这是一个Swift 2版本。对任何财产进行排序。我用了专辑的名字。

代码语言:javascript
复制
var albums:[ALAssetsGroup] = []

//枚举以获取您的专辑。。。

代码语言:javascript
复制
func sortAndReloadAlbums()
{
    self.albums.sortInPlace({ (album1:ALAssetsGroup, album2:ALAssetsGroup) -> Bool in
        let album1Name: String = String(album1.valueForProperty(ALAssetsGroupPropertyName))
        let album2Name: String = String(album2.valueForProperty(ALAssetsGroupPropertyName))

        return album1Name < album2Name
    })

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

https://stackoverflow.com/questions/22597301

复制
相关文章

相似问题

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