我可以通过ALAssetsGroupAlbum枚举并创建一个按相册名称排序的NSMutableArray,如下所示,没有问题。但是,我真正想做的是像iPhone的照片应用程序一样对相册进行排序,按照iPhoto上设定的手动顺序排序,这可能不是按字母顺序排列的。我想知道资产库是否在某个地方保存了这些订单信息。有人知道苹果是怎么做到的吗?谢谢。
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];
}发布于 2015-12-24 00:35:20
//这对我有用。这是一个Swift 2版本。对任何财产进行排序。我用了专辑的名字。
var albums:[ALAssetsGroup] = []//枚举以获取您的专辑。。。
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()
}https://stackoverflow.com/questions/22597301
复制相似问题