美文网首页iOS学习笔记iOS 控件封装开发文档
iOS 图片多选 拍摄 录像 放大浏览 LLImagePicke

iOS 图片多选 拍摄 录像 放大浏览 LLImagePicke

作者: 奥卡姆剃须刀 | 来源:发表于2017-06-02 14:11 被阅读1200次

继上次写的图片浏览放大的框架 LLPhotoBrowser 之后
发现满足不了一些需求 就在此封装了一个集图片放大浏览 图片多选 拍摄 录像 于一体的框架LLImagePickerView
有什么问题可留言本人第一时间解答问题
有喜欢的可动动小指头点赞
GitHub地址:https://github.com/liuniuliuniu/LLImagePickerView

LLImagePickerView.gif

文章目录

  • Version
  • 如何添加
  • 使用介绍
  • Hope

Version

  • 1.0.1 大版本的更改,更改初始化方法,增加每行显示图片个数的接口,更加容易适配各种需求

  • 0.0.3 修复嵌套多层控制器时 pop 出现的bug

  • 0.0.2 指定依赖库版本 修复部分加载图片Bundle的问题

  • 0.0.1 支持cocoapod 并且修复了present控制器的bug,以及图片错乱的问题

功能实现

  • 图片多选及单选,视频多选及单选
  • 时刻回调出媒体数据用于上传
  • 直接对图片和视频预览
  • 多种属性自定义:
    • 媒体类型
    • 删除、限定最大选择数数量
    • 同个媒体资源是否多次选择
    • 是否展示删除按钮
    • 是否显示添加按钮
    • 选择图片视图的背景颜色

如何添加

iOS 8.0 or later

  • 支持 cocoaPod
pod 'LLImagePickerView'

有人反馈搜不到 可能是本地 cocoapod 库的问题 执行代码 pod setup 更新本地cocoapod 库即可

  • 也可以手动添加
    • LLImagePickerView文件拉到项目中
    • 添加头文件#import "LLImagePickerView.h"
    • 还要添加一些依赖库
pod 'TZImagePickerController',pod 'MWPhotoBrowser'

使用介绍 (具体使用可看LLImagePickerDemo)

  • 唯一的初始化方法, Frame 以及 countOfRow
  • Frame中的高度设置0即可,框架的高度会自动根据宽度以及每行展示个数来自适应
// 唯一的初始化方法, Frame 以及 countOfRow
 LLImagePickerView *pickerV = [LLImagePickerView ImagePickerViewWithFrame:CGRectMake(0, 70, [UIScreen mainScreen].bounds.size.width, 0) CountOfRow:3];
  • 需要展示的媒体的资源类型
typedef enum : NSUInteger {
    LLImageTypePhotoAndCamera,// 本地相机和图片
    LLImageTypePhoto,// 本地图片
    LLImageTypeCamera,// 相机拍摄
    LLImageTypeVideoTape,// 录像
    LLImageTypeVideo,// 视频
    LLImageTypeAll,// 所有资源
} LLImageType;

pickerV.type = LLImageTypePhoto;
  • 是否允许 同个图片或视频进行多次选择
pickerV.allowMultipleSelection = YES;
  • 视情况看是否需要改变高度,目前单独使用且作为tableview的header,实时监控高度的变化
pickerV observeViewHeight:^(CGFloat height) {

}];
  • 随时获取选择的媒体文件
[pickerV observeSelectedMediaArray:^(NSArray<LLImagePickerModel *> *list) {
for (LLImagePickerModel *model in list) {
// 在这里取到模型的数据
NSLog(@"%@",model.imageUrlString);
}
}];
  • preShowMedias 可以作为图片预览框架先行传入数据,传入的数据可以是:UIImage,NSString,至于其他的也可以传入 LLImagePickerModel类型 事先对LLImagePickerModel 的属性赋值即可
//在预览或者之前已经有图片的情况下,需要传入进行预先展示
pickerV.preShowMedias = @[@"4",@"1",@"http://s1.dwstatic.com/group1/M00/AA/B8/b9a8f39ed9c8609354a07cc38452aef9.gif"];
  • maxImageSelected 图片、视频最多选择个数,包括事先展示的 preShowMedias的数量. default is 9
// 自定义从本地相册中所选取的最大数量
pickerV.maxImageSelected = 5;
  • showDelete 是否显示删除按钮. Defaults is YES
// 预览情况下设置为 NO
pickerV.showDelete = NO;
  • showAddButton 是否需要显示添加按钮. Defaults is YES
//编辑情况下设置为 YES  预览情况下设置为 NO
pickerV.showAddButton = NO;
  • allowPickingVideo 是否允许 在选择图片的同时可以选择视频文件. default is NO
//如果希望在选择图片的时候,出现视频资源,那么可以设置为 YES
pickerV.allowPickingVideo = NO;
  • allowMultipleSelection 是否允许 同个图片或视频进行多次选择. default is YES 如果设置为 NO,那么在已经选择了一张以上图片之后,就不能同时选择视频
//如果不希望已经选择的图片或视频,再次被选择,那么可以设置为 NO
pickerV.allowMultipleSelection = NO;
  • backgroundColor 底部collectionView的背景颜色,有特殊颜色要求的可以单独去设置

Hope

  • 代码使用过程中,发现任何问题,可以随时issue
  • 如果有更多建议或者想法也可以直接联系我 QQ:416997919
  • 觉得框架对你有一点点帮助的,就请支持下,点个赞。
  • 期间感谢有几位朋友提出宝贵的意见让此框架更加完善 感谢
    GitHub地址:https://github.com/liuniuliuniu/LLImagePickerView

《部分参考网络》

相关文章

网友评论

  • KyleLou:兄嘚,哥还没用,先赞一个
  • DoubleLine:分两次上传两张gif图,上传完第一张,再上传第二张,这时候第一张图片不显示了,
  • 悠闲自在的蜗牛:怎么修改这个加号的默认图片呢
    奥卡姆剃须刀:更改一下图片资源即可。
  • 9d6149d39e47:你好,我想请教一下,公司项目里用到了你写的框架上传图片,非常棒。但是现在我遇到一个问题就是在另一个页面也复用到了这个上传图片的页面,现在有一个需求就是将已上传的图片重新从服务器获取下来并显示在这个框架创建的页面上,请问这应该怎么处理呢?
    奥卡姆剃须刀:@马非白 那就把服务器返回来的图片数组在赋值给这个框架就可以了 demo里边有示例代码的
  • 433edd1efe70:请教一个问题。有多个tableviewcell(类似天猫多商品评价),每个tableviewcell上面都用到LLImagePickerView选取图片,例如有7个cell屏幕显示3个,当第一个选好图片,往下滚动cell的时候发现下面的一个cell被赋上刚才选取图片的值了。这样的复用问题怎么解决?
    433edd1efe70:@奥卡姆剃须刀 谢谢,已经解决
    奥卡姆剃须刀:这样最好用模型解决复用的问题 你自己单独定义一个模型来管理每个cell的选好的图片 下次滚动这以后 直接取模型的值就好了
  • Droupnir:博主你好~我是一个技术小白。。最近公司用到相册相关的项目我就找到了你的这个,果然简单好用!我再使用的过程中遇到一个问题,就是不知道如何在我的页面里调用到cell的删除方法..有时间 教我一下 谢谢~
    奥卡姆剃须刀:@Droupnir 加我qq,416996919,晚上有空可以交流一下
  • 余默_d467:大神,我发现一个小问题,如果将maxImageSelected这个属性设置为1,是选择不了照片的
    奥卡姆剃须刀:@余默_d467 加我 QQ 416997919
    余默_d467:@奥卡姆剃须刀 是进入相册里,却不能选择照片,只能预览
    奥卡姆剃须刀:可以的呀 如果是1的话 就只能选择一张
  • a115f46b1876:真是牛逼,看你写的都是艺术啊
    奥卡姆剃须刀:不敢不敢 我还很菜:joy:
  • 信仰支撑我不会痛:博主你好,pod到工程,使用时碰到了点问题。 当我在一个界面用nav push进入之后,选完图片点击完成之后,整个工程直接跳转到了navgitoncontroller的最初页,请问博主碰到过这样的问题么?
    信仰支撑我不会痛:博主,我申请加了你的QQ,方便的话通过下交流下,谢谢
  • e862bc30a2eb:大神牛逼就不说了,还特有耐心 ,花了一上午的时间帮我解决问题,感谢大神的demo,为你这样的程序员点赞:+1: ,demo相当好用
    奥卡姆剃须刀:谢谢 客气了 共同进步:grin:
  • 1cd74c6de955:我在模态弹出视图上面用这个,相册什么的弹不出来,大神这个怎么解决?
    奥卡姆剃须刀:连夜改了一下 你上 GItHub 上重新 down 一下代码看一下 Demo 哦:smile:
  • 苜蓿鬼仙:666 学习一下
    1cd74c6de955:我在模态弹出视图上面用这个,相册什么的都弹不出来,大神这个怎么解决
  • Raindew:还可以。不知道有没有加入网络图片下载这些处理
    奥卡姆剃须刀:加了哦 demo中的GIF图就是网络图片:smile:
  • SJon:就是要导入几个另外的第三方,集成过后效果不错:+1: 谢谢大神
    奥卡姆剃须刀:框架已经支持cocoapod了哦 如有需要可以用cocoapod:smile:
    奥卡姆剃须刀:@SJoye 谢谢😀确实是有依赖裤
  • 白水灬煮一切:不错
    SJon::+1: 很好!加油!
    奥卡姆剃须刀:@白水灬煮一切 谢谢😀

本文标题:iOS 图片多选 拍摄 录像 放大浏览 LLImagePicke

本文链接:https://www.haomeiwen.com/subject/dmhufxtx.html