项目介绍:
详情请移步至https://github.com/targetcloud/TGPhotoPicker
欢迎star
欢迎您来时尚一下
Features
- 支持链式编程配置,程序员的最爱
- 支持Cocoapods
- 支持2种遮罩模式(直接在选择的照片cell上显示遮罩、选择到最大照片数量后其余照片cell显示遮罩)
- 支持选择完成后,长按控件的照片cell进行位置调整(iOS 9 及以上有效)
- 支持2种删除模式(选择完成后直接点每个照片cell上的删除按钮删除、选择完成后预览单个照片大图时点工具栏上的删除按钮删除)
- 支持选择指示器选择时的顺序数字显示(每个照片cell的状态有5种状态:未选择、选中状态、数字选中状态、删除状态、按住删除按钮时的高亮状态)
- 支持2种选择模式(直接选择、预览选择)
- 预置weibo、wechat 2种成组配置模式,省去多个参数配置,简化为一句代码配置
- 支持8种选择样式(类型)单勾、圈、方块、带、斜带、三角、心、星
- 支持4种选择位置(左上、左下、右上、右下)
- 支持tinColor统一设置风格
- 支持选择指示器大小调节
- 自由选择iOS8或iOS10拍照功能
- 轻量级、使用超灵活、功能超强大
- 用例丰富,快速上手
使用默认(有界面)lazy var picker: TGPhotoPicker = TGPhotoPicker(self, frame: CGRect(x: 0, y: 50, width: UIScreen.main.bounds.width, height: 200))override func viewDidLoad() { super.viewDidLoad() //放到界面中去 self.view.addSubview(picker)}
带配置(有界面) lazy var picker: TGPhotoPicker = TGPhotoPicker(self, frame: CGRect(x: 0, y: 50, width: UIScreen.main.bounds.width, height: 200)) { (config) in config.type = .weibo //更多配置在这里添加 }
带配置(链式) lazy var picker: TGPhotoPicker = TGPhotoPicker(self, frame: CGRect(x: 0, y: 50, width: UIScreen.main.bounds.width, height: 200)) { (config) in config.tg_type(.wechat) .tg_checkboxLineW(1) }
带配置(单例配置对象) lazy var picker: TGPhotoPicker = TGPhotoPicker(self, frame: CGRect(x: 0, y: 50, width: UIScreen.main.bounds.width, height: 200)) { _ in TGPhotoPickerConfig.shared.tg_type(.wechat) .tg_checkboxLineW(1) .tg_toolBarH(50) .tg_useChineseAlbumName(true) }
其他使用方式(无界面) 模型数组TGPhotoPickerManager.shared.takePhotoModels(true, true) { (array) in //示例代码 self.picker.tgphotos.removeAll() self.picker.tgphotos.append(contentsOf: array) DispatchQueue.main.async { self.picker.reloadData() } }
其他使用方式(无界面) 4个分开独立的数组(即模型里成员分出来的)TGPhotoPickerManager.shared.takePhotos(true, true, { (config) in //链式配置 config.tg_type(TGPhotoPickerType.weibo) .tg_confirmTitle("我知道了") .tg_maxImageCount(12) }) { (asset, smallImg, bigImg, data) in //示例代码 self.picker.tgphotos.removeAll() for i in 0..<smallImg.count { let model = TGPhotoM() model.asset = asset model.smallImage = smallImg model.bigImage = bigImg model.imageData = data self.picker.tgphotos.append(model) } DispatchQueue.main.async { self.picker.reloadData() } }
使用控件中的数据func upLoadData(){ var dataArray = [Data]() for model in picker.tgphotos { dataArray.append(model.imageData!) } //上传Data数组 }