A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 iOS资源工匠哥 于 2017-2-28 15:54 编辑

【iOS开发】PhotoKit的使用以及简易相片选择器的创建

随着iOS10的推出,Xcode 8 最低支持iOS 8.0,PhotoKit可以完全替代ALAssetsLibrary来管理相册资源。本文主要介绍PhotoKit的基本使用,做一个简易的相片选择器。
一、基本概念:
PHAsseet:代表照片库中的一个资源,跟 ALAsset 类似,通过 PHAsset 可以获取和保存资源;
PHFetchOptions:获取资源时的参数,可以传nil,即使用系统默认值;
PHFetchResult:表示一系列的资源集合,也可以是相册的集合;
PHAssetCollection:表示一个相册或者一个时刻,或者是一个「智能相册(系统提供的特定的一系列相册,例如:最近删除,视频列表,收藏等等);
PHCollectionList:表示一组PHCollection,而它本身也是一个PHCollection,因此PHCollection作为一个集合,可以包含其他集合,例如:照片 - 时刻 - 精选 - 年度;
PHImageManager:用于处理资源的加载,加载图片的过程带有缓存处理,可以通过传入一个 PHImageRequestOptions 控制资源的输出尺寸等规格;
PHImageRequestOptions:如上面所说,控制加载图片时的一系列参数。

二、   PhotoKit的基本使用:

为便于使用,封装一个单例类PhotoCatcherManager,实现以下方法:

  1、获取全部相册:
2.获取一个相册的结果集(按时间排序)
3、获取某个类型都是结果集(按时间排序)
4、获取系统相册CameraRoll的结果集(按时间顺序)
5.获取单张高清图,progressHandler为从iCloud下载进度
私有方法,根据屏幕获取图片的大小
6.获取单张缩略图
7.同时获取多张图片(高清),全部为高清图resultHandler才执行,需要从iCloud下载时progressHandler提供每张进度(P.S:内部压缩图片方法实现
8.获取相册授权状态
三、创建相片选择器:1.先看效果图(注意同时拉取多张大图时内存处理)


主要包含以下几点:

    • ViewControllerA含有一个UITextView,我们从相册选取一张或多张图片让其展示。
  • ViewControllerB是相片选择界面,有UICollectionView构成,展示的是相册图片缩略图。
  • ViewControllerB界面点击图片可查看该图片高清图。
2.实现
2.1. ViewControllerA.m



2.2. ViewControllerB.h ( PhotoController )

2.3.ViewControllerB.m 部分代码( PhotoController )

更多精品资源推荐
                《2017年最新iOS开发完整版学习路线图 》听说,用过的人都说好,你不试试吗?


------------------------------------更多话题,请点击下面链接----------------------------------



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马