一行代码搞定相册选取多张照片或者拍照

2017-10-23  本文已影响87人  WSKing的杂货铺

在项目中,为用户设置头像是基本操作.另外还涉及到很多的图片上传功能,然而,一张张的去选择图片无疑是一个非常麻烦的操作,因此我封装了一个相册多选的功能,另外一个是拍照也一起封装进去.

一行代码解决

1,弹出sheet,是选择相册还是相机拍照

这里我是用的MBProgressHUB的sheet,没有用系统本身的sheet,也比较好用;

2,相机

相机就是系统本身的相机功能;后期我会封装多张拍照,一张张的拍也还是比较麻烦;

之前使用的是imagePicker,只能一张张的拍照,如果我有多张需要拍摄的话,也很麻烦,所以,我重新封装了多张拍照:

多张拍照效果图

其实也没什么难度,主要使用AVCaptureSession自动以相机,拍照保存显示,确定代理传值!

3,相册

相册我没有使用系统的UIImagePickerController,二十用Photos/Photos.h这个框架来玩的.

其中,涉及到有可能是第一次使用进入这里,需要统一相册的使用权限,这里我监听了相册的权限改变的情况,然后加载相册相片(不然第一次同意相册权限后进去会是空的,没有照片).

相机权限改变的方法

然后就是加载系统相册,这个是Photos/Photos.h里面的方法

获取本地图片

再就是collectionView展示所有图片以及选择图片了.


再然后就是回调的问题了

typedef void (^CWPhotoMutiPickerCompletion)(NSArray *imageArray);

这一block回调,返回的是图片的数组;

@property (nonatomic, copy) CWPhotoMutiPickerCompletion completion;//完成时调用

实现基础的代码

上图中的这个block的赋值一定不能忘,不然后面就没办法做赋值回调了.

很简单,直接贴链接吧,可以直接拿来用.(觉得还行给个star)

一行代码选取图片----传送门

上一篇 下一篇

猜你喜欢

热点阅读