您的位置:首页 > 移动开发 > IOS开发

IOS开发 获取手机里的全部图片

2015-12-11 11:45 477 查看
// 需要加入头文件

#import <AssetsLibrary/AssetsLibrary.h>

//然后创建

@property (nonatomic,strong) ALAssetsLibrary *assetsLibrary;

//存放图片

@property (nonatomic,strong) NSMutableArray *imageGroup;
//使用懒加载创建

- (ALAssetsLibrary *)assetsLibrary

{

if (!_assetsLibrary) {

_assetsLibrary = [[ALAssetsLibraryalloc]init];

}

return_assetsLibrary;

}

- (NSMutableArray *)imageGroup

{

if (!_imageGroup) {

_imageGroup = [[NSMutableArrayalloc]init];

}

return_imageGroup;

}

//然后在需要的地方调用下面的方法

#pragma mark - 获取图片连接

-(void)createImage{

ALAssetsLibraryGroupsEnumerationResultsBlock listGroupBlock = ^(ALAssetsGroup *group,BOOL
*stop) {

ALAssetsFilter *onlyPhotosFilter = [ALAssetsFilterallPhotos];

[group setAssetsFilter:onlyPhotosFilter];

if ([group
numberOfAssets] > 0)

{

//group
是图片的组 每组里面有数量不等的图片 第一次接触的话可以打印一些group 看看格式

[group enumerateAssetsUsingBlock:^(ALAsset *result,NSUInteger index,BOOL *stop) {

//遍历group得到 result可以转化成图片

/* postImage是将要显示的图片

ALAsset *result = [self.imageGroup objectAtIndex:indexPath.row];

UIImage *postImage = [UIImage imageWithCGImage:[group aspectRatioThumbnail]];

*/

if (result) {

//把result转化成图片直接保存到可变数组里面
如果直接把result存到数组里面 在用的时候直接获取图片 图片会模糊 图片分为 高清图 全屏图 这里取的是高清图

UIImage *postImage = [UIImage
imageWithCGImage:result.defaultRepresentation.fullResolutionImage];

[self.imageGroupaddObject:postImage];

}

}];

}

else

{

[self.collectionViewreloadData];
// 执行到了这里之后 就说明 所有的图片全部都放到了 self.imageGroup 这个可变数组里面了 self.collectionView 是我用于展示图片用的 这里 就不放进来了

}

};

NSUInteger groupTypes =
ALAssetsGroupAll ;

[self.assetsLibraryenumerateGroupsWithTypes:groupTypesusingBlock:listGroupBlock
failureBlock:^(NSError *error) {

NSLog(@"Group not found!\n");

}];

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: