基于PHAsset封装的图片选择浏览器:
1.获取所有图片资源信息:
- (NSArray*)getImageAssetSArray{
NSMutableArray*array = [[NSMutableArrayalloc]init];
//获取资源时的参数,可以传 nil,即使用系统默认值
PHFetchOptions *options = [[PHFetchOptionsalloc]init];
//获取资源 fetchAssetsWithMediaType:所获取的资源类型 PHAssetMediaTypeImage(获取所有图片资源)
PHFetchResult *fetchResult = [PHAssetfetchAssetsWithMediaType:PHAssetMediaTypeImageoptions:options];
if([fetchResultcountOfAssetsWithMediaType:PHAssetMediaTypeImage] >0) {
//遍历所有资源 并将资源每个图片资源信息存入数组
[fetchResultenumerateObjectsUsingBlock:^(id_Nonnull obj,NSUIntegeridx,BOOL* _Nonnull stop) {
PHAsset *asset = (PHAsset *)obj;
[arrayaddObject:asset];
}];
}
returnarray;
}
2.根据图片资源信息获取图片:
- (UIImage *)OriginalImage:(PHAsset *)asset{
__block UIImage *resultImage;
PHImageRequestOptions *phImageRequestOptions = [[PHImageRequestOptionsalloc]init];
phImageRequestOptions.synchronous=YES;
[[PHImageManagerdefaultManager]requestImageForAsset:asset
targetSize:PHImageManagerMaximumSize
contentMode:PHImageContentModeDefault
options:phImageRequestOptions
resultHandler:^(UIImage *result,NSDictionary*info) {
resultImage = result;
NSLog(@"%@",result);
}];
returnresultImage;
}
3.设置图片选择item和全屏浏览模式的item。图片选择浏览器demo
可直接拖入项目使用,使用方法如下:
自定义照片选择器基于PHAsset 该实例代码在photos 中,外部存在的photosAsset无使用代码,photos内部存在的photosAsset为关键代码 1.使用相册时 主要调用代码如下(首先添加PhotosControllerDelegate):
PhotosController *vc = [[PhotosController alloc] init];
// vc.title = @"相册";
vc.delegate = self;
[self.navigationController pushViewController:vc animated:YES];
2.PhotosControllerDelegate代理方法如下:
(void)getImagesArray:(NSArray *)imagesArray {
NSLog(@"图片:%ld",imagesArray.count);
}
在这个代理方法里,我们能够获取所选图片的image数组。