1.实现简单流程图 (看图)
2.在来看看我们简单的代码列表 (如何获取系统图片可以下载代码来看)
3.显示到控件(UICollectionview)
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) as! VFisrstCollectionViewCell
//取缩略图
let myAsset = assets[indexPath.row]
//– thumbnail(小正方形的缩略图)
//– aspectRatioThumbnail(按原始资源长宽比例的缩略图)
cell.showImage!.image =
UIImage(CGImage: myAsset.thumbnail().takeUnretainedValue())
if(IsSelecetdMultiple==true){ //可以多选
cell.SelectedPic!.hidden=false
cell.SelectedPic!.addTarget(self, action: #selector(PictrueSelectedViewController.SelectedPic(_:)), forControlEvents: .TouchUpInside)
cell.SelectedPic!.tag=indexPath.row
//检查选选中和不选中(如果选中一个打钩,滑动的时候会默认一个index所以每次重写加载cell的时候
//必须把所有当前看到的图片全部为未选中,如果当前index有选中的tag标识则改成选中状态
if(CheckItem.containsObject(indexPath.row)){ //检查当前存储的tag标识
cell.SelectedPic!.setImage(UIImage(named: SelectedCheckImg), forState: .Normal) //选中
}
else{
cell.SelectedPic!.setImage(UIImage(named: NoCheckImg), forState: .Normal) //不选中
}
}else{ //单选
cell.SelectedPic!.hidden=true
}
return cell
}
4.图片选择,并且返回所选图片
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
//点击大图
let myAsset = assets[indexPath.row]
//获取文件名
let representation = myAsset.defaultRepresentation()
//备注说明:如果使用模拟器调试会造成内存泄漏(检测工具:Instruments) 真机不会泄漏
let img = UIImage(CGImage:representation.fullResolutionImage().takeUnretainedValue()) //原图 ( 没经过像素压缩处理的
let vc = ShowImageViewController()
vc.title=representation.filename() //图片名称
vc.image=img
vc.IsSelecetdMultiple=self.IsSelecetdMultiple
vc.Callback_SelectedValue { (value) -> Void in
if(self.myCallbackValue != nil){
var imglist=[UIImage]()
imglist.append(value)
self.myCallbackValue!(value:imglist)
self.navigationController?.popViewControllerAnimated(true)
}
}
self.navigationController?.pushViewController(vc, animated: true)
}
我们来看看如何调用该类库:
//第一个参数是单选还是多选,true表示多选,第二参数是必包回调选择图片数据
let vc = PictrueSelectedViewController(IsSelecetdMultiple: true) { (value) in
//返回的是一个[UIImage]对象
print(value[0]) //选图1
}
self.navigationController?.pushViewController(vc, animated: true)
看看我们的功能
如需代码,请移动到--->http://www.jianshu.com/p/0f950c180cb8