Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/targetcloud/tgphotopicker
the best photo picker plugin in swift
https://github.com/targetcloud/tgphotopicker
photo-picker photopicker
Last synced: 1 day ago
JSON representation
the best photo picker plugin in swift
- Host: GitHub
- URL: https://github.com/targetcloud/tgphotopicker
- Owner: targetcloud
- License: mit
- Created: 2017-08-08T04:38:32.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2017-08-25T13:40:26.000Z (about 7 years ago)
- Last Synced: 2024-10-31T16:02:22.664Z (8 days ago)
- Topics: photo-picker, photopicker
- Language: Swift
- Size: 108 MB
- Stars: 200
- Watchers: 6
- Forks: 22
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# TGPhotoPicker
the best photo picker plugin in swift(iOS8+)
No using picture resources, based on TGImage![Swift](https://img.shields.io/badge/Swift-3.0-orange.svg)
![Build](https://img.shields.io/badge/build-passing-green.svg)
![License MIT](https://img.shields.io/badge/license-MIT-green.svg?style=flat)
![Platform](https://img.shields.io/cocoapods/p/Pastel.svg?style=flat)
![Cocoapod](https://img.shields.io/badge/pod-v0.0.5-blue.svg)## Demo Screenshot
###### 照片选择界面(.weibo)更多效果在下面哦:)
###### 参数调节界面(只为方便直观查看本插件的参数效果,实际使用时请直接参考TGPhotoPickerConfig.swift提供的参数)
###### 自定义拍照界面
## Recently Updated
- 0.0.5 添加AlertSheet类和useCustomActionSheet配置属性
- 0.0.4 新增11个属性,向下兼容iOS8,其中最主要的新增功能是2个,1是允许用户选择使用iOS8或iOS10拍照功能,推荐仍使用iOS8,默认使用iOS10;2是拍照时是否同时把拍照结果保存到系统相册中去,默认不保存
- 0.0.3 丰富的参数,`DIY`你满意的一款photo picker## Features
- [x] 不使用图片资源,基于TGImage实现
- [x] 支持`链式`编程配置,程序员的最爱
- [x] 支持`Cocoapods`
- [x] 支持2种`遮罩`模式(直接在选择的照片cell上显示遮罩、选择到最大照片数量后其余照片cell显示遮罩)
- [x] 支持选择完成后,长按控件的照片cell进行位置调整(iOS `9` 及以上有效)
- [x] 支持2种`删除`模式(选择完成后直接点每个照片cell上的删除按钮删除、选择完成后预览单个照片大图时点工具栏上的删除按钮删除)
- [x] 支持选择指示器`选择时的顺序`数字显示(每个照片cell的状态有5种状态:未选择、选中状态、数字选中状态、删除状态、按住删除按钮时的高亮状态)
- [x] 支持2种`选择`模式(直接选择、预览选择)
- [x] 预置`weibo`、`wechat` 2种成组配置模式,省去多个参数配置,简化为一句代码配置
- [x] 支持8种`选择样式`(类型)`单勾`、`圈`、`方块`、`带`、`斜带`、`三角`、`心`、`星`
- [x] 支持4种`选择位置`(左上、左下、右上、右下)
- [x] 支持`tinColor`统一设置风格
- [x] 支持选择指示器`大小调节`
- [x] 自由选择iOS8或iOS10拍照功能
- [x] 轻量级、使用超灵活、功能超强大
- [x] 用例丰富,快速上手## Usage
总体分为2种使用方式,有界面的话,用TGPhotoPicker实例化(即多选照片选择完成后把数据呈现在控件上),不需要界面的话用TGPhotoPickerManager.shared.takePhotoModels单例方法获取多选照片数据(这个又分两种,用模型或不用模型(直接用`分开的数组`))###### 提示:
`1、请先在info.plist中添加以下两个key,以请求相机相册的访问权限(iOS10)`
`NSCameraUsageDescription`(Privacy - Camera Usage Description)
`NSPhotoLibraryUsageDescription`(Privacy - Photo Library Usage Description)`2、作者的Xcode为8.3.3(8E3004b)若你的版本过低,可能会在TGPhotoPickerConfig.swift文件的case .smartAlbumScreenshots:处出现错误提示:Enum case 'smartAlbumScreenshots' not found in type 'PHAssetCollectionSubtype' 报错原因是这是iOS10.2/10.3新增两个值, 解决办法:1、请升级你的Xcode 2、注释相关代码`
#### 使用默认(有界面)
```swift
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)
}
```#### 带配置(有界面)
```swift
lazy var picker: TGPhotoPicker = TGPhotoPicker(self, frame: CGRect(x: 0, y: 50, width: UIScreen.main.bounds.width, height: 200)) { (config) in
config.type = .weibo
//更多配置在这里添加
}
```#### 带配置(链式)
```swift
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)
}
```#### 带配置(单例配置对象)
```swift
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)
}
```#### 其他使用方式(无界面) `模型`数组
```swift
TGPhotoPickerManager.shared.takePhotoModels(true, true) { (array) in
//示例代码
self.picker.tgphotos.removeAll()
self.picker.tgphotos.append(contentsOf: array)
DispatchQueue.main.async {
self.picker.reloadData()
}
}
```#### 其他使用方式(无界面) 4个`分开独立`的数组(即模型里成员分出来的)
```swift
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..#### 2
#### 3
#### 4
#### 5
#### 6
#### 7
#### 8
#### 9
#### 10
#### 11
#### 12
#### 13
#### 14
#### 15
#### 16
#### 17
#### 18
#### 19
## 运行效果
#### diagonalBelt
![](https://github.com/targetcloud/TGPhotoPicker/blob/master/gif/diagonalBelt.gif)#### circle
![](https://github.com/targetcloud/TGPhotoPicker/blob/master/gif/circle.gif)#### belt
![](https://github.com/targetcloud/TGPhotoPicker/blob/master/gif/b.gif)#### square
![](https://github.com/targetcloud/TGPhotoPicker/blob/master/gif/s.gif)#### onlyCheckbox
![](https://github.com/targetcloud/TGPhotoPicker/blob/master/gif/o.gif)#### triangle
![](https://github.com/targetcloud/TGPhotoPicker/blob/master/gif/t.gif)#### heart
![](https://github.com/targetcloud/TGPhotoPicker/blob/master/gif/h.gif)#### star
![](https://github.com/targetcloud/TGPhotoPicker/blob/master/gif/star.gif)## Installation
- 下载并拖动TGPhotoPicker到你的工程中- Cocoapods
```
pod 'TGPhotoPicker'
```## Reference
- http://blog.csdn.net/callzjy
- https://github.com/targetcloud/TGImage如果你觉得赞,请`Star`