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