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");
}];
}
#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");
}];
}
相关文章推荐
- ios 利用size classes 使 iPad 水平和垂直方向布局不同
- IOS Quartz 2D
- [iOS]添加 All Exceptions 断点后, 每次运行都会在 main.m 中断的一种解决方法
- vmstat,iostat,sar命令详解
- ios常用操作命令
- iOS开发可变参数va_list、va_start、va_end
- 基于JSPatch的iOS应用线上Bug的即时修复方案,附源码.
- iOS开发系列--绘图 动画
- iOS - 正则表达式了解
- IOS 系统定位提示完毕后 提示用户去开启定位权限
- iOS-上传错误之ERROR ITMS-90535 Unexpected CFBundleExecutable Key. 的解决办法
- ios给按钮添加系统声音,AudioServicesPlaySystemSound 系统声音提示
- iOS 导航条小结
- iOS 响应链
- iOS 贝塞尔曲线实现圆角效果
- IOS 项目重命名
- IOS系列——ScrollView大放大和缩小功能的简单实现
- iOS9 ReplayKit录制视频
- iOS9 ReplayKit录制视频
- iOS开发-给图片添加水印