iOS相册中图片按照时间排序


ios相册默认是按照时间从过去到现在排列,图片顺序有正序和逆序,group可以用以下方法来选择顺序

/** @param NSIndexSet 需要获取的相册中图片范围 @param NSEnumerationOptions 获取图片的顺序(顺序还是逆序) //ALAssetsGroupEnumerationResultsBlock的参数 @param result 照片ALAsset对象 @param index 当前result在该group相册中的位置,第index位置上 @param *stop 需要停止的时候 *stop = YES就停止继续运行当前相册group */ enumerateAssetsAtIndexes:(NSIndexSet *)indexSet options:(NSEnumerationOptions)options usingBlock:(ALAssetsGroupEnumerationResultsBlock)enumerationBlock

示例如下

@property (nonatomic, strong) ALAssetsGroup *selectAssetsGroup;
-(void)loadAllPhotos{ NSInteger photoNumber = [self.selectAssetsGroup numberOfAssets]; NSIndexSet *IndexSet = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, photoNumber)]; //图片按照逆序排列(由现在到过去)
    [self.selectAssetsGroup enumerateAssetsAtIndexes:IndexSet options:NSEnumerationReverse usingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop) { if (result) { numberOfAssets++; NSString *type = [result valueForProperty:ALAssetPropertyType]; if ([type isEqualToString:ALAssetTypePhoto]){ numberOfPhotos++; }else if ([type isEqualToString:ALAssetTypeVideo]){ numberOfVideos++; } [assets addObject:result]; } }]; }

若只想按照系统默认的顺序(由过去到现在),那么可以用

[self.selectAssetsGroup enumerateAssetsUsingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop) { if (result) { numberOfAssets++; NSString *type = [result valueForProperty:ALAssetPropertyType]; if ([type isEqualToString:ALAssetTypePhoto]){ numberOfPhotos++; }else if ([type isEqualToString:ALAssetTypeVideo]){ numberOfVideos++; } [assets addObject:result]; } }];

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM