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,但不用实现委托方法, 以后可以加一些可选协议方法在某些时机让委托对象做些事)
[aView addSubview: 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
如果您觉得还不错,别忘了点个星星哦,谢谢大家!!!!
网友评论
Analyzing dependencies
[!] Unable to satisfy the following requirements:
- `LPDQuoteImagesView` required by `Podfile`
Specs satisfying the `LPDQuoteImagesView` dependency were found, but they required a higher minimum deployment target.
[!] Your Podfile has had smart quotes sanitised. To avoid issues in the future, you should not use TextEdit for editing it. If you are not using TextEdit, you should turn off smart quotes in your editor of choice.
pod安装失败
@IBAction func postButtonTap(_ sender: UIBarButtonItem) {
print("post")
let imageArray = NSArray(array: (quoteImageView?.selectedPhotos!)!)
// print(imageArray)
}
override func viewDidLoad() {
super.viewDidLoad()
let frame = CGRect(x: 0, y: 100, width: Screen_Width, height: 120)
let quoteImageView = LPDQuoteImagesView(frame: frame, withCountPerRowInView: 3, cellMargin: CGFloat(10.0))
quoteImageView?.collectionView.isScrollEnabled = false
quoteImageView?.countPerRowInAlbum = 3
quoteImageView?.navcDelegate = self
view.addSubview(quoteImageView!)
}
这个方法得到的是空数据是为什么呢?
NSArray<UIImage *> *imageArray = [NSArray arrayWithArray:_quoteSystemImagesView.selectedPhotos];
NSMutableArray<NSData *> *imageDataArray = [[NSMutableArray alloc] init];
for(UIImage *imageObject in imageArray){
NSData *imageData = UIImageJPEGRepresentation(imageObject, 0.3);
[imageDataArray addObject:imageData];
}