LLImagePickerView 1.0.1

LLImagePickerView 1.0.1

测试已测试
语言语言 Obj-CObjective C
许可协议 MIT
发布最新发布2017年10月

123维护。



 
依赖项
TZImagePickerController~> 1.7.9
MWPhotoBrowser~> 2.1.2
 

  • 作者
  • liuniuliuniu

LLImagePicker

集本地图片、视频选择与展示、拍摄、录像于一体的多功能媒体框架,并能实时回调用于上传的数据类型

LLImagePickerGif.gif

目录

基本要求

功能实现

  • 实现本地图片视频选择、拍照录制等功能自如
  • 框架主体是一个 view,已经实现高度配置,无需再进行任何处理
  • 框架主体支持:添加媒体、预览展示媒体、混合编辑(添加和预览展示一并实现)
  • 在选择媒体上支持:删除、限制最大选择数、同一媒体资源是否多次选择等
  • 从本地相册选择图片使用了TZImagePickerController;查看图片视频使用了MWPhotoBrowser;底部弹出框使用了ACAlertController替代系统弹框
  • 自定义媒体模型,返回图片、视频上传数据类型,如:NSData或视频路径。无需为了获取上传的数据类型进行任何处理。

如何添加

  • 支持 Cocoapod

    pod 'LLImagePickerView'
    
    

有人反馈找不到,可能是 Cocoapod 版本低的问题
执行代码 pod setup 升级一下 Cocoapod

  • 手动添加
  • LLImagePickerView文件拖到项目中
  • 添加头文件#import "LLImagePickerView.h"
  • 还需要添加一些依赖库

使用说明(具体查看LLImagePickerDemo示例)

demo 目录分析

  • AddLLImagePickerVC 添加媒体的演示
  • DisplayLLImagePickerVC 预览媒体的演示
  • EditLLImagePickerVC 添加和预览混合编排的演示
  • PresentVC 在 present 出来的控制器上添加
// 获取初始化高度
CGFloat height = [LLImagePickerView defaultViewHeight];

LLImagePickerView *pickerV = [[LLImagePickerView alloc]initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, height)];

// 需要展示的媒体的资源类型,当前是仅本地图库
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);
}
}];

self.tableView.tableHeaderView = pickerV;

自定义操作

  • type

需要展示的媒体资源类型,默认是 LLImageTypePhotoAndCamera

typedef enum : NSUInteger {
    LLImageTypePhotoAndCamera,// 本地相机和图片
    LLImageTypePhoto,// 本地图片
    LLImageTypeCamera,// 相机拍摄
    LLImageTypeVideoTape,// 录像
    LLImageTypeVideo,// 视频
    LLImageTypeAll,// 所有资源
} LLImageType;


点击加号按钮,自定义所想要的媒体资源选项
pickerV.type = LLImageTypePhoto
  • preShowMedias

预先展示的媒体数组。如果一开始有需要显示的媒体资源,可以先传入进行显示,没有的话可以不赋值。
传入的如果是图片类型,则可以是:UIImage,NSString,至于其他的都可以传入 LLImagePickerModel 类型
包括网络图片和 gif 图片

在预览或者之前已经有图片的情况下,需要传入进行预先展示
pickerV.preShowMedias = @[@"4",@"1",@"http://s1.dwstatic.com/group1/M00/AA/B8/b9a8f39ed9c8609354a07cc38452aef9.gif"];
  • maxImageSelected

最大图片、视频选择个数,包括preShowMedias的数量。默认为 9

自定义从本地相册中所选取的最大数量
pickerV.maxImageSelected = 5;
  • showDelete

是否显示删除按钮。默认为 YES

一般在预览情况下设置为 NO
pickerV.showDelete = NO;
  • showAddButton

是否需要显示添加按钮。默认为 YES

一般在预览情况下设置为 NO
pickerV.showAddButton = NO;
  • allowPickingVideo

是否允许在选择图片的同时选择视频文件。默认为 NO
选择的本地视频只是简单加载显示,当需要立即播放选择的本地视频时,会有一个转码加载的过程,请等待(注意)

如果希望在选择图片的时候,出现视频资源,那么可以设置为 YES
pickerV.allowPickingVideo = NO;
  • allowMultipleSelection

是否允许对同一图片或视频进行多次选择。默认为 YES
如果设置为 NO,那么在选择了一张以上图片之后,就不能同时选择视频了(注意)

如果不希望已经选择的图片或视频,再次被选择,那么可以设置为 NO
pickerV.allowMultipleSelection = NO;
  • backgroundColor

底部 collectionView 的背景颜色,有特殊颜色要求的可以单独去设置

版本

  • 0.0.3 修复嵌套多层控制器时 pop 出现的 bug
  • 0.0.2 指定依赖库版本 修复部分加载图片 Bundle 的问题
  • 0.0.1 支持 Cocoapod 并修复了 present 控制器的 bug,以及图片错乱的问题

希望

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

许可协议

所有源代码均采用 MIT 许可协议。