美文网首页iOS头条干货视频动画00『 基础知识 』
小白也能简单集成高大上的ImagePicker

小白也能简单集成高大上的ImagePicker

作者: 践行丶见远 | 来源:发表于2016-08-03 14:22 被阅读3147次

*** 提示根据小伙伴发现问题首次相册选择可能会不加载选择图片 该问题已修复

现在是个项目就要有图片上传所以下面介绍一下简单高端的图片选择器

感谢读者的细心发现bug,最近bug已经修复(github更新)所以对文章部分内容做出修改。

然后看一下实现代码 和效果图对比你就知道绝对可以带你装b带你飞!
gif5新文件.gif

实现代码 可选择代理和block 我就直接都写上了 自己选择 实现封装自行查看demo

#import "ViewController.h"

#import "DzyImgPicker.h"

#define DzyWid ([UIScreen mainScreen].bounds.size.width)
#define DzyHei ([UIScreen mainScreen].bounds.size.height)

@interface ViewController ()
<
DzyImgDelegate
>

@property (nonatomic ) DzyImgPicker *dzyView;
@property (nonatomic ) NSArray *data;

- (DzyImgPicker *)dzyView {

    if (!_dzyView) {
        //此处需要注意  自己计算一下  我设置的每个cell 是60*60  间距10 所以 这里一般是设置 全屏宽度  如有特殊需求自行修改
        DzyImgPicker *picker = [[DzyImgPicker alloc] initWithFrame:CGRectMake(0, 160, DzyWid, 200) andParentV:self andMaxNum:9];
        picker.delegate = self;
        picker.backgroundColor = [UIColor orangeColor];
        _dzyView = picker;
    }
    return _dzyView;
}

- (void)viewDidLoad {
    
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor whiteColor];
    
    self.data = [NSArray new];
    
    [self.view addSubview:self.dzyView];
    
    __weak typeof(self)weakSelf = self;
    [_dzyView setDzyImgs:^(NSArray *data) {
        weakSelf.data = data;
        NSLog(@"block --- %lu",(unsigned long)data.count);
    }];
    
    // Do any additional setup after loading the view.
}

#pragma - DzyImgDelegate
- (void)getImages:(NSArray *)imgData{

}

实现代码我就放在github上了Demo 有朋友发现可优化更新的部分请联系我

相关文章

网友评论

  • 丶奔波儿灞:为什么不在添加好图片之后有个删除按钮呢? 体验很不好还得打开图片删除
    践行丶见远:@丶奔波儿灞 不好意思最近工作比较忙,谢谢您的建议,后续会优化
  • 235a008fb19c:把控件集成到cell中,假如我现在是下标为0的cell,这个时候拍了3张照片 这个时候移除掉下标为0的cell,然后新增一个cell,这个新的cell还是下标为0 然后拍照 也会显示刚刚删除的cell的图片 这个是tableview复用的错乱导致的? 可是我按照网上说的几种方法尝试解决 都解决不了
    践行丶见远:@陌颜微笑 不好意思最近工作比较忙我会抽空优化
  • 诗和远方哪及你与家乡:大神,你能说下你这个怎么放在tableViewCell上面吗,我是新手
  • 西贝人立口:大神 问下 返回图片数组是这个方法吗?- (void)getImages:(NSArray *)imgData;这个方法改怎么用呢?
    践行丶见远:代理和block 用一个即可选择图片后返回的数组走这两个方法
  • Morning张:大神在吗?有几个问题想请教你,加你q了。选择图片时,有时候选择后点完成并没有选择成功,block返回的是0.这个发生的概率不稳定。是什么原因?
  • 翀鹰精灵:大神 小小建议 希望你上传到GitHub上的都附带一张效果图,GIF的最好,这样别人可以看到效果,更清晰明了!
    践行丶见远: @陌颜微笑 正好有空我看眼😄
    235a008fb19c:大神 你好 Demo出现了 Bug ,就是第一次选择相机拍摄几张后显示,然后接着选择相册里的图片显示没有正常显示(第一次),第二次选中相册图片才能正常显示
    践行丶见远:@翀鹰女孩 最近正好想整理下,谢谢
  • 9e00a81a7112:我把这个放到tableViewCell上面,发现另外的问题,不知道是不是跟昨天说的小bug位置有关,添加好了图片之后,假设是9张图片,点击最后一个图片,会随机自动闪一下最后一个图片就跳转到了第一个图片去了,下面的位置显示仍然是9/9,但是左右滑动一下就变成1/9了,还有就是如果这时候删除了当前图片(点击第9张,实际显示的是第1张),它又跳回最后一张图片了,显示是9/9,实际只有8张图片了,然后再点删除,直接就崩了,提示越界了,我找了半天没找出来应该改哪里
    践行丶见远:抽空 问题已经修复
  • 9e00a81a7112:发现一个小bug,当点击最后一张图片删除的时候,会跳跃,比如总共9张图片,点击到图片浏览器,显示是9/9,然后删除第九张图片,应该是前移一位变成8/8,然而实际变成了7/8,相当于删除了第九张图片就跳到第7张图片去了
    践行丶见远:@9e00a81a7112 谢谢 问题反馈 抽空优化。。。
  • 4ecff4055adf:大神,第一次选择图片后,再次进入相册,应该把刚才选中的标为选中状态,大神看到回复一下哦
    践行丶见远: @黄瑾瑜 去git 吧
    4ecff4055adf:@践行丶见远 大神现在能提供一下修改入口吗,谢谢
    践行丶见远: @黄瑾瑜 谢谢!我会抽时间修改
  • lc_cat:大神 我想在下面加上一句话 距离cell 的最大y值固定 怎么实现啊
    践行丶见远: @lc_cat 不好意思,您的问题我没太读懂😅,详细说一下
  • 1fb67cc4c504:大神 为什么我下了遇到这个问题“ARC forbids synthesizing a property of an Objective-C object with unspecified ownership or storage attribute” ???
    1fb67cc4c504:@践行丶见远 按照你的方法问题解决了 :smile:
    践行丶见远:@韩宜林 将所有属性 改成类似这样 可以适配 @property (nonatomic,strong) UIColor *color;
  • G_M:你这个是对进行的二次封装吗.如果我不需要用collectionView来上传图片的话,我该如何来多选
    践行丶见远:@小子难缠 基于两个库的封装,你只要自己从新封装即可,类似我写的DzyImagePicker
  • 逆天行贱:代码标注很详细,上传图片的介绍刚好能用到,大写的赞!
    践行丶见远:@逆天行贱 谢谢:smile:
  • 余生丶91:github上怎么没有 :anguished:
    余生丶91:@践行丶见远 Thank you!
    践行丶见远:@丶川丶 可以了
    践行丶见远:@丶川丶 少年我传的是首页你稍等我改下

本文标题:小白也能简单集成高大上的ImagePicker

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