iOS仿微信qq图片选择器imagePicker --只需要初始化并贴上一个view
git请移步(带pod) https://github.com/Assuner-Lee/LPDQuoteImagesView
最新加入了pod
本库封装于TZImagePickerController
pod 'LPDQuoteImagesView'
# LPDQuoteImagesView
(iOS-imagePicker仿qq仿微信--pickImage and quote)只需要几行简单的代码,就可以引入多选照片并引用照片的功能模块(贴上一个view,就获得了全部). 所有的功能都集成到了黑盒里,你需要做的只是初始化quoteview和取得quoteview 的已选择图片数组(支持拍照,视频)。
这是贴上去的quoteView (图片1红色矩形区域)

这就是quoteView贴上去的效果(红色矩形内区域),点击可以选择或预览照片(可设置拖拽排序),点击右上角删除(有动画),可以通过引用这个view的selectedPhotos属性得到UIImage数组,保存或上传!
简单介绍下用法(目前)
-------------------------------------------------------------------------------------
1>.引入头文件
#import "LPDQuoteImagesView.h"
-----------------------------------------------------------------------------------
2>初始化一个quoteImagesView (UIView类型)
eg:(假设初始化一个和屏幕差不多等宽的view)
LPDQuoteImagesView *quoteImagesView =[[LPDQuoteImagesView alloc] initWithFrame: CGRectMake(x, y, width, hight)withCountPerRowInView: 5 cellMargin: 12 ];
//初始化 此view的frame, view里每行cell个数, cell间距(如上方图1,cell上缩略图大小是根据设置自动计算的)
注:设置frame时,我们可以根据设计人员给的cell的宽度和最大个数、排列,间距去大致计算下quoteview的size.
quoteImagesView .maxSelectedCount= 6 ;
//最大可选照片数
quoteImagesView.collectionView .scrollEnabled= NO;
//view可否滑动
-----------------------------------------
quoteImagesView.navcDelegate = vc; // vc 是一个viewController,(一般vc是指 self,即在控制器里初始化)
/ / 勉强算一个委托(委托controller弹出imagePicker,但不用实现委托方法, 以后可以加一些可选协议方法在某些时机让委托对象做些事)
[aViewaddSubview: quoteImagesView];
//把咱们的view加到某一个视图上,就什么都不用管了!!!(一般来说是委托控制器里的某一个视图)
-------------------------------------------
-----------------------------------------------------------------------------------
3>.获取引用图片
NSArray<UIImage *> *imageArray = [NSArray arrayWithArray: quoteImagesView .selectedPhotos];
//selectedPhotos 属性就是你看到的那些选中的照片的集合
注:quoteImagesView.selectedPhotos为NSArray属性,引用的数组会变化,您可以在需要用到照片的方法里去拿一次照片数组,不可初始化的时候直接引用数组(此时数组为nil)。。。selectedPhotos只能反映当前状态下已选中的照片(例如上传按钮绑定的方法里去拿一次)。
////只需要贴上view,其他的在图库选照片,预览,保存,更新缩略图均不需要依赖新的对象参与,引入不需要额外代码,包括collect view ,一切处理响应都封在了quoteview及 “黑盒” 中。
-----------------------------------------------------------------------------------
效果图
图片2(选照片界面)
3.预览
选中照片,蓝色框还有动画效果。。。。
-----------------------------------------------------------------------------------
其他特性:导航栏自动适应APP颜色,其他的蓝色对号,蓝色椭圆 如需要其他样式可在bundle资源中替换,选中的图片缩略图排列可设置拖拽改变位置,删除整体也带有动画效果,添加到最大数目没有➕,删除就出现等。
本库封装于TZImagePickerController, 很多业务场景下很实用,感谢!
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
如果需要上传图片,必须是NSData类型的,例如
NSArray<UIImage *>*imageArray = [NSArray arrayWithArray:_quoteImagesView.selectedPhotos];
//取得照片数组
NSMutableArray<NSData *>*imageDataArray = [[NSMutableArray alloc] init];
for(UIImage *imageObject in imageArray){
NSData *imageData = UIImageJPEGRepresentation(imageObject, 0.3);
//UIImage转换为NSData
[imageDataArray addObject:imageData];
}
然后一个个NSData类型的对象可以放在post请求formData里上传出去
------------------------------------------------------------------------
https://github.com/Assuner-Lee/LPDQuoteImagesView
如果您觉得还不错,别忘了点个星星哦,谢谢大家!!!!
作者:Assuner
链接:https://www.jianshu.com/p/2b9086d2c37b
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现