# iOS开发之Swift初体验PhotoKit

语言：zh-CN
原文：[iOS开发之Swift初体验PhotoKit](<https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao44>)
中文：[中文 HTML](<https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao44>)
English: [English HTML](<https://allluckly.cn/en/journal/2016-05-09-a-first-look-at-photokit-in-swift/>)
发布于: 2016-05-09T00:00:00+08:00
内容更新于: 2016-05-09T00:00:00+08:00
署名：大石头布

以照片多选组件介绍 PhotoKit 的基本使用，说明最大选择数量、PHAsset 数组回传和闭包调用方式，并提供相册项目及学习资料，记录从 AssetsLibrary 迁移的尝试。

原文署名大石头布，Bison 编辑收录。

[原文所列来源](<http://www.jianshu.com/p/673e68fa60e3>)

**阅读前** 这是 2015–2017 年间的技术记录，本次整理未重新运行验证示例。原文发表于 2016 年，介绍 iOS 8 引入的 PhotoKit 与当时的 Swift 示例。

编辑：[Bison](<https://allluckly.cn/>)  
 投稿：[大石头布](<http://www.jianshu.com/p/673e68fa60e3>)

## 1、PhotoKit是什么？

PhotoKit是苹果给我们提供的一个处理相册资源的库。以前使用[AssetsLibrary 框架](<https://developer.apple.com/library/ios/documentation/AssetsLibrary/Reference/ALAssetsLibrary_Class/#//apple_ref/doc/uid/TP40009722-CH1-SW57>) ， 相机应用和照片应用发生了显著的变化，增加了许多新特性，包括按时刻来组织照片的方式。但与此同时，AssetsLibrary 框架落伍了，iOS 8 开始苹果引入PhotoKit 。

## 2、本文示例

本文主要了解PhotoKit的基本使用，效果图：

![1](<https://allluckly.cn/images/blog/tuogao/tougao44/1.gif>)

记得以前在简书也写过一篇有关相册的文章，当时用的AssetsLibrary 框架 也有一些问题，[Swift中实现相册的多选](<http://www.jianshu.com/p/8c89cac09387>) 就是这篇，建议大家以后尽量使用PhotoKit进行相册管理。

上图点击完成，图片是以闭包的形式返回，闭包传入\[PHAsset\] 数组供使用，使用的时候还需要传入一个参数，最多选择照片个数，我这里传入的是4.

在vc中使用很简单就一句话。

```
self.zz_presentPhotoVC(4){ (assets) in
              print(assets.count)
}
```

本来是想讲解下PhotoKit的使用的，但其实自己对此框架没有很多的见解，大多数都是看官方文档还有一些优质的blog，我想说的其他的blog都讲的很详细了，直接直接放上连接，和自己练习的源码地址。供大家学习使用。

## 3、学习资源和代码

[obc中国](<http://objccn.io/issue-21-4/>)  
 [简书小伙伴写的 不错](<http://www.jianshu.com/p/42e5d2f75452>)  
 [官方示例代码oc版本](<https://developer.apple.com/library/ios/samplecode/UsingPhotosFramework/Introduction/Intro.html#//apple_ref/doc/uid/TP40014575>)  
 [WWDC PhotoKit 视频地址](<https://developer.apple.com/videos/play/wwdc2014/511/>)  
 [上面gif的代码地址(swift)](<https://github.com/smalldu/ZZImagePicker>)

## 2016年4月29更新

模仿微信，将照片库中只能相册为0的cell去掉，所有分组合成一个section，并排序 ，优化页面显示 ，修改选中模式，添加预览模式（暂时还没做） 如图：

![1](<https://allluckly.cn/images/blog/tuogao/tougao44/2.gif>)

![1](<https://allluckly.cn/images/blog/tuogao/tougao44/3.jpg>)

如果大于最大可选择数量，会左右摇摆提示。 后面完成预览功能会再来更新。 有什么好的建议也可以提出来 目前还有很多不完善的，会慢慢进行完善。

## 2016年5月3日更新  
1

实现预览功能，基本可以使用了，有什么需求可以提提

![1](<https://allluckly.cn/images/blog/tuogao/tougao44/4.gif>)

---

好文推荐：[iOS开发之超链接富文本](<https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao43>)

