前言
iOS开发有一个需求,要选取系统照片,可以用UIImagePickerController 获取系统照片,UI用的是系统的。
要自定义选取照片UI的只能用AssetsLibrary框架(iOS9之前) 或者Photos框架(iOS8新特性)。
Photos框架
基础类:
- PHAsset:代表图像或视频对象;
- PHCollection: 自身的集合或者PHAsset实例的集合,抽象类。
- PHAssetCollection:PHCollection 的子类,代表相册。
- PHCollectionList:PHCollection的子类,代表自建的文件夹。
- PHImageManager 适合获取任意尺寸的图片
- PHCachingImageManager 适合获取缩略图,比较快
- PHImageRequestOptions有几个属性:
- synchronous:指定请求是否同步执行。
- resizeMode:对请求的图像怎样缩放。
- deliveryMode:图像质量。
- normalizedCropRect:用于对原始尺寸的图像进行裁剪,基于比例坐标。只在 resizeMode 为 Exact 时有效。
- networkAccessAllowed 允许联网下载iCloud图片。
如何获取照片信息
简单的获取全部的照片
PHFetchOptions *allPhotosOptions = [[PHFetchOptions alloc] init];
allPhotosOptions.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"creationDate" ascending:YES]];
PHFetchResult *allPhotos = [PHAsset fetchAssetsWithOptions:allPhotosOptions];