失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 【iOS】拍照/相册单选 相册多选 图片浏览 图片裁剪

【iOS】拍照/相册单选 相册多选 图片浏览 图片裁剪

时间:2024-05-04 04:19:30

相关推荐

【iOS】拍照/相册单选 相册多选 图片浏览 图片裁剪

有一段时间没有写iOS系列的博客了。最近由于项目的需要,就有封装了一个拍照/相册单选、相册多选、图片浏览、图片裁剪的工具类。在封装这这类是站在巨人的肩膀上做的。

1.ZLPhotoBrowser:/longitachi/ZLPhotoBrowser

2.VPImageCropper:/windshg/VPImageCropper

上面一个是相册和相机的,下面一个是图片裁剪。

而我要做的就是把这两个封装在一起满足我们项目的需求。

常见场景

1.个人中心,修改个人头像,需要拍照或是从相册选图,这个一般是一张且带有裁剪功能。那么我的这个封装可以满足这个需求。

2.确认购物后发表评论,这是 一般是可以上传图片的,而且是可以多张,那么这个封装也可以满足需求。

两个库

关于上面提到的两个库,大家可以去库的github上面查看或是自行百度。

我的封装

我封装就是在ZLPhotoBrowser库的基础上增加了一个ZLOnePhoto类,然后把VPImageCropper给整合进去。

在ZLOnePhoto类里面只有一个方法就可以搞定上面的两个场景。

typedef NS_ENUM(NSInteger, PickerType){PickerType_Camera = 0, // 拍照PickerType_Photo, // 照片};typedef NS_ENUM(NSInteger, PhotoCutType){PhotoCutType_YES = 0, // 裁剪PhotoCutType_NO, // 不裁剪};/**相片选择回调 @param image 相片信息 @param isCancel 是否取消 1:取消 0 没取消*/typedef void(^CallBackBlock)(UIImage *image, BOOL isCancel);@interface ZLOnePhoto : NSObject/**单例 @return ZLOnePhoto*/+ (instancetype)shareInstance;/**拍照或是选择相册 @param pickerType PickerType @param photoCutType 是否裁剪 @param vc 调用此方法的控制器 @param callBackBlock 回调*/- (void)presentPicker:(PickerType)pickerType photoCut:(PhotoCutType)photoCutType target:(UIViewController *)vc callBackBlock:(CallBackBlock)callBackBlock;

不同的需求通过设置不同的枚举值就可以了,使用起来很方便,选择结果直接在block里面回调。

例如:

// 相册单选 不裁剪ZLOnePhoto *one = [ZLOnePhoto shareInstance];[one presentPicker:PickerType_Photo photoCut:PhotoCutType_NO target:self callBackBlock:^(UIImage *image, BOOL isCancel) {self.imageView.image = image;}];

两个库怎么连接起来

两个库的连接是在UIImagePickerControllerDelegate的代理方法- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info里面做的。详细的处理大家可以去我的github查看代码。

iOS10权限

在info.plist中加入:

<key>NSPhotoLibraryUsageDescription</key><string>需要您的同意,才能访问相册</string><key>NSCameraUsageDescription</key><string>需要您的同意,才能访问相机</string>

效果图

相册单选

拍照

图片体积太大,大家去github查看。

/zhuming3834/HGDQPhoto/blob/master/动画2.gif

相册多选

代码下载

请点击我!

如果觉得《【iOS】拍照/相册单选 相册多选 图片浏览 图片裁剪》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。