{"id":18695544,"url":"https://github.com/targetcloud/tgphotopicker","last_synced_at":"2026-02-14T05:34:06.126Z","repository":{"id":56922876,"uuid":"99650589","full_name":"targetcloud/TGPhotoPicker","owner":"targetcloud","description":"the best photo picker plugin in swift","archived":false,"fork":false,"pushed_at":"2017-08-25T13:40:26.000Z","size":113248,"stargazers_count":199,"open_issues_count":11,"forks_count":22,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-07-30T12:14:39.298Z","etag":null,"topics":["photo-picker","photopicker"],"latest_commit_sha":null,"homepage":null,"language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/targetcloud.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-08-08T04:38:32.000Z","updated_at":"2025-01-03T18:05:20.000Z","dependencies_parsed_at":"2022-08-21T04:50:26.694Z","dependency_job_id":null,"html_url":"https://github.com/targetcloud/TGPhotoPicker","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/targetcloud/TGPhotoPicker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/targetcloud%2FTGPhotoPicker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/targetcloud%2FTGPhotoPicker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/targetcloud%2FTGPhotoPicker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/targetcloud%2FTGPhotoPicker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/targetcloud","download_url":"https://codeload.github.com/targetcloud/TGPhotoPicker/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/targetcloud%2FTGPhotoPicker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271500361,"owners_count":24770375,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-21T02:00:08.990Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["photo-picker","photopicker"],"created_at":"2024-11-07T11:15:26.045Z","updated_at":"2026-02-14T05:34:06.058Z","avatar_url":"https://github.com/targetcloud.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"https://github.com/targetcloud/TGPhotoPicker/blob/master/Banners.png\" width = \"12%\" hight = \"12%\"/\u003e\n\n# TGPhotoPicker\n\nthe best photo picker plugin in swift(iOS8+) \nNo using picture resources, based on TGImage\n\n![Swift](https://img.shields.io/badge/Swift-3.0-orange.svg)\n![Build](https://img.shields.io/badge/build-passing-green.svg)\n![License MIT](https://img.shields.io/badge/license-MIT-green.svg?style=flat)\n![Platform](https://img.shields.io/cocoapods/p/Pastel.svg?style=flat)\n![Cocoapod](https://img.shields.io/badge/pod-v0.0.5-blue.svg)\n\n## Demo Screenshot\n\n###### 照片选择界面（.weibo）更多效果在下面哦:）\n\n\u003cimg src=\"https://github.com/targetcloud/TGPhotoPicker/blob/master/img/IMG_2642.PNG\" width = \"60%\" /\u003e\n\n###### 参数调节界面(只为方便直观查看本插件的参数效果，实际使用时请直接参考TGPhotoPickerConfig.swift提供的参数)\n\n\u003cimg src=\"https://github.com/targetcloud/TGPhotoPicker/blob/master/img/IMG_2641.PNG\" width = \"60%\" /\u003e\n\n###### 自定义拍照界面\n\n\u003cimg src=\"https://github.com/targetcloud/TGPhotoPicker/blob/master/img/IMG_2584.PNG\" width = \"60%\" /\u003e\n\n## Recently Updated\n- 0.0.5 添加AlertSheet类和useCustomActionSheet配置属性\n- 0.0.4 新增11个属性，向下兼容iOS8，其中最主要的新增功能是2个，1是允许用户选择使用iOS8或iOS10拍照功能，推荐仍使用iOS8，默认使用iOS10;2是拍照时是否同时把拍照结果保存到系统相册中去，默认不保存\n- 0.0.3 丰富的参数，`DIY`你满意的一款photo picker\n\n## Features\n- [x] 不使用图片资源，基于TGImage实现\n- [x] 支持`链式`编程配置，程序员的最爱\n- [x] 支持`Cocoapods`\n- [x] 支持2种`遮罩`模式（直接在选择的照片cell上显示遮罩、选择到最大照片数量后其余照片cell显示遮罩）\n- [x] 支持选择完成后，长按控件的照片cell进行位置调整(iOS `9` 及以上有效)\n- [x] 支持2种`删除`模式（选择完成后直接点每个照片cell上的删除按钮删除、选择完成后预览单个照片大图时点工具栏上的删除按钮删除）\n- [x] 支持选择指示器`选择时的顺序`数字显示（每个照片cell的状态有5种状态:未选择、选中状态、数字选中状态、删除状态、按住删除按钮时的高亮状态）\n- [x] 支持2种`选择`模式（直接选择、预览选择）\n- [x] 预置`weibo`、`wechat` 2种成组配置模式，省去多个参数配置，简化为一句代码配置\n- [x] 支持8种`选择样式`（类型）`单勾`、`圈`、`方块`、`带`、`斜带`、`三角`、`心`、`星`\n- [x] 支持4种`选择位置`（左上、左下、右上、右下）\n- [x] 支持`tinColor`统一设置风格\n- [x] 支持选择指示器`大小调节`\n- [x] 自由选择iOS8或iOS10拍照功能\n- [x] 轻量级、使用超灵活、功能超强大\n- [x] 用例丰富，快速上手\n\n## Usage\n总体分为2种使用方式，有界面的话，用TGPhotoPicker实例化（即多选照片选择完成后把数据呈现在控件上），不需要界面的话用TGPhotoPickerManager.shared.takePhotoModels单例方法获取多选照片数据（这个又分两种，用模型或不用模型（直接用`分开的数组`））\n\n###### 提示:\n\n`1、请先在info.plist中添加以下两个key,以请求相机相册的访问权限（iOS10）`\n\n`NSCameraUsageDescription`（Privacy - Camera Usage Description）\n`NSPhotoLibraryUsageDescription`（Privacy - Photo Library Usage Description）\n\n`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、注释相关代码`\n\n#### 使用默认（有界面）\n```swift\nlazy var picker: TGPhotoPicker = TGPhotoPicker(self, frame: CGRect(x: 0, y: 50, width: UIScreen.main.bounds.width, height: 200))\n\noverride func viewDidLoad() {\n        super.viewDidLoad()\n        //放到界面中去\n        self.view.addSubview(picker)\n}\n```\n\n#### 带配置（有界面）\n```swift\n    lazy var picker: TGPhotoPicker = TGPhotoPicker(self, frame: CGRect(x: 0, y: 50, width: UIScreen.main.bounds.width, height: 200)) { (config) in\n        config.type = .weibo\n        //更多配置在这里添加\n    }\n```\n\n#### 带配置(链式)\n```swift\n    lazy var picker: TGPhotoPicker = TGPhotoPicker(self, frame: CGRect(x: 0, y: 50, width: UIScreen.main.bounds.width, height: 200)) { (config) in\n        config.tg_type(.wechat)\n              .tg_checkboxLineW(1)\n    }\n```\n\n#### 带配置（单例配置对象）\n```swift\n    lazy var picker: TGPhotoPicker = TGPhotoPicker(self, frame: CGRect(x: 0, y: 50, width: UIScreen.main.bounds.width, height: 200)) { _ in\n        TGPhotoPickerConfig.shared.tg_type(.wechat)\n            .tg_checkboxLineW(1)\n            .tg_toolBarH(50)\n            .tg_useChineseAlbumName(true)\n    }\n```\n\n#### 其他使用方式（无界面） `模型`数组\n```swift\nTGPhotoPickerManager.shared.takePhotoModels(true, true) { (array) in\n            //示例代码\n            self.picker.tgphotos.removeAll()\n            self.picker.tgphotos.append(contentsOf: array)\n            DispatchQueue.main.async {\n                self.picker.reloadData()\n            }\n        }\n```\n\n#### 其他使用方式（无界面） 4个`分开独立`的数组（即模型里成员分出来的）\n```swift\nTGPhotoPickerManager.shared.takePhotos(true, true, { (config) in\n            //链式配置\n            config.tg_type(TGPhotoPickerType.weibo)\n                .tg_confirmTitle(\"我知道了\")\n                .tg_maxImageCount(12)\n        }) { (asset, smallImg, bigImg, data) in\n            //示例代码\n            self.picker.tgphotos.removeAll()\n            for i in 0..\u003csmallImg.count {\n                let model = TGPhotoM()\n                model.asset = asset[i]\n                model.smallImage = smallImg[i]\n                model.bigImage = bigImg[i]\n                model.imageData = data[i]\n                self.picker.tgphotos.append(model)\n            }\n            DispatchQueue.main.async {\n                self.picker.reloadData()\n            }\n        }\n```\n\n#### 使用控件中的数据\n```swift\nfunc upLoadData(){\n        var dataArray = [Data]()\n        for model in picker.tgphotos {\n            dataArray.append(model.imageData!)\n        }\n        //上传Data数组\n    }\n```\n\n#### 可以配置的属性（以下为部分可以配置的参数,完整配置参数见TGPhotoPickerConfig.swift（其中官方Demo中列出了主要的32个参数的使用效果））\n``` swift\n    /** Alert样式*/\n    var useCustomActionSheet: Bool = true\n    \n    /** 拍照后是否保存照片到相册*/\n    var saveImageToPhotoAlbum: Bool = false\n    \n    /** 使用iOS8相机: false 根据iOS版本判断使用iOS10或iOS8相机; true 指定使用iOS8相机*/\n    var useiOS8Camera: Bool = false\n    \n    /** 与useCustomSmartCollectionsMask结合使用,当useCustomSmartCollectionsMask为true时过滤需要显示smartAlbum的Album类型*/\n    var customSmartCollections \n    \n    /** 使用自定义的PHAssetCollectionSubtype集合来过滤显示自己想要的相册夹,如想显示慢动作和自拍,那么上面的useCustomSmartCollectionsMask数组中设置为（或添加）[PHAssetCollectionSubtype.smartAlbumSlomoVideos,PHAssetCollectionSubtype.smartAlbumSelfPortraits]*/\n    var useCustomSmartCollectionsMask: Bool = true\n    \n    /** 是否使用中文名称显示smartAlbum的Album名*/\n    var useChineseAlbumName: Bool = false\n    \n    /** 空内容的相册夹是否显示 */\n    var isShowEmptyAlbum: Bool = false\n    \n    /** 升序排列照片*/\n    var ascending: Bool = false\n    \n    /** 预置的成组配置, 微博 微信*/\n    var type: TGPhotoPickerType = .normal\n    \n    /** 在选择类型为方 带时用到的Corner*/\n    var checkboxCorner: CGFloat = 0\n    \n    /** 选择框显示的位置*/\n    var checkboxPosition: TGCheckboxPosition = .topRight\n    \n    /** 移除按钮显示的位置*/\n    var removePosition: TGCheckboxPosition = .topRight\n    \n    /** 移除类型,同选择类型*/\n    var removeType: TGCheckboxType = .diagonalBelt\n    \n    /** 是否显示选择顺序*/\n    var isShowNumber: Bool = true\n    \n    /** 纯数字模式下显示选择顺序时的数字阴影宽,不需要阴影设置为0*/\n    var shadowW:CGFloat = 1.0\n    \n    /** 纯数字模式下显示选择顺序时的数字阴影高,不需要阴影设置为0*/\n    var shadowH:CGFloat = 1.0\n    \n    /** 选择框类型（样式） 8种 */\n    var checkboxType: TGCheckboxType = .diagonalBelt\n    \n    /** 显示在工具栏上的选择框的大小*/\n    var checkboxBarWH: CGFloat = 30\n    \n    /** 显示在照片Cell上的选择框的大小*/\n    var checkboxCellWH: CGFloat = 20\n    \n    /** 选择框起始透明度*/\n    var checkboxBeginngAlpha: CGFloat = 1\n    \n    /** 选择框的结束透明度, 两者用于选择框渐变效果*/\n    var checkboxEndingAlpha: CGFloat = 1\n    \n    /** 选择框的画线宽度, 工具栏上返回、删除按钮的画线宽度*/\n    var checkboxLineW: CGFloat = 1.5\n    \n    /** 选择框的Padding*/\n    var checkboxPadding: CGFloat = 1\n    \n    /** 选择时是否动画效果*/\n    var checkboxAnimate: Bool = true\n    \n    /** 选择时或选择到最大照片数量时，当前或其他Cell的遮罩的透明度*/\n    var maskAlpha: CGFloat = 0.6\n    \n    /** 使用选择遮罩: false,当选择照片数量达到最大值时,其余照片显示遮罩; true,其余照片不显示遮罩,而是已经选择的照片显示遮罩 */\n    var useSelectMask: Bool = false\n    \n    /** 工具条的高度*/\n    var toolBarH: CGFloat = 44.0\n    \n    /** 相册类型列表Cell的高度*/\n    var albumCellH: CGFloat = 60.0\n    \n    /** 照片Cell的高宽,即选择时的呈现的宽高*/\n    var selectWH: CGFloat = 80\n    \n    /** 控件本身的Cell的宽高,即选择后的呈现的宽高*/\n    var mainCellWH: CGFloat = 80\n    \n    /** 自动宽高,用于控件本身Cell的宽高自动计算*/\n    var autoSelectWH: Bool = false\n    \n    /** true,在选择照片界面,点击照片（非checkbox区域）时,不跳转到大图预览界面,而是直接选择或取消选择当前照片; false, 点击照片checkbox区域选择或取消选择当前照片,点击非checkbox区域跳转到大图预览界面*/\n    var immediateTapSelect: Bool = false\n    \n    /** 控件或Cell之间布局时的padding*/\n    var padding: CGFloat = 1\n    \n    /** 左右没有空白,即选择时呈现的UICollectionView没有contentInset中的左右Inset*/\n    var leftAndRigthNoPadding: Bool = true\n    \n    /** 选择时呈现的UICollectionView的每行列数*/\n    var colCount: CGFloat = 4\n    \n    /** 选择后控件本身呈现的UICollectionView的每行列数*/\n    var mainColCount: CGFloat = 4\n    \n    /** 完成按钮标题*/\n    var doneTitle = \"完成\"\n    \n    /** 完成按钮的宽*/\n    var doneButtonW: CGFloat = 70\n    \n    /** 完成按钮的高*/\n    var doneButtonH: CGFloat = 30.8\n    \n    /** 导航工具栏返回按钮图标显示圆边 及 星（star）样式显示圆边*/\n    var isShowBorder: Bool = false\n    \n    /** 分多次选择照片时,剩余照片达到上限时的提示文字*/\n    var leftTitle = \"剩余\"\n    \n    /** 相册类型界面的标题*/\n    var albumTitle = \"照片\"\n    \n    /** 确定按钮的标题*/\n    var confirmTitle  = \"确定\"\n    \n    /** 选择数量达到上限时的提示文字, #为占位符*/\n    var errorImageMaxSelect = \"图片选择最多不能超过#张\"\n    \n    /** 拍摄标题*/\n    var cameraTitle = \"拍摄\"\n    \n    /** 选择标题*/\n    var selectTitle = \"从手机相册选择\"\n    \n    /** 取消标题*/\n    var cancelTitle = \"取消\"\n    \n    /** 选择时显示的数字的字体大小等*/\n    var fontSize: CGFloat = 15.0\n    \n    /** 预览照片的最大宽度*/\n    var previewImageFetchMaxW:CGFloat = 600\n    \n    /** 工具栏的背景色,有透明部分则全屏穿透效果*/\n    var barBGColor = UIColor(red: 40/255, green: 40/255, blue: 40/255, alpha: 0.9)\n    \n    /** 选择框 、按钮的颜色*/\n    var tinColor = UIColor(red: 7/255, green: 179/255, blue: 20/255, alpha: 1)\n    \n    /** 删除按钮的颜色*/\n    var removeHighlightedColor: UIColor = .red\n    \n    /** 删除按钮是否隐藏*/\n    var isRemoveButtonHidden: Bool = false\n    \n    /** 按钮无效时的文字颜色*/\n    var disabledColor: UIColor = .gray\n    \n    /** 最大照片选择数量上限*/\n    var maxImageCount: Int = 9\n    \n    /** 压缩比,0(most)..1(least) 越小图片就越小*/\n    var compressionQuality: CGFloat = 0.5\n```\n#### 使用链式编程配置时，请在所有属性前加tg_前缀即可\n\n#### 选择指示器各状态组合参数说明（选择类型checkboxType、大小checkboxCellWH、位置checkboxPosition各状态下都起作用,其他配置参数起作用时机见下表（最佳快速上手请使用官方Demo进行参数调配，参数效果立竿见影））\n\n类型 | 未选择状态 | 选择状态 | 删除状态 | 删除高亮状态 | 数字状态| 其他说明\n------ | ------ | ------ | ------ | ------ | ------ | ------\n只有勾| 勾色white(0.7) 、checkboxLineW | 勾色tincolor、checkboxLineW | 叉色同左 | 叉色removeHighlightedColor | shadowW、shadowH、fontSize、checkboxLineW、checkboxPadding、字色tinColor |\n圈勾| 圈色white(0.3)、border色white(0.7)、 勾色white、checkboxLineW、checkboxPadding |  圈色tincolor、 勾色white，checkboxLineW、 渐变（checkboxBeginngAlpha、checkboxEndingAlpha）、 checkboxPadding | 叉色同左 | 叉色removeHighlightedColor | 字色white、圈色tinColor、checkboxPadding | 微博未选择状态勾色clear、微博删除状态叉色white\n方勾| 方色white(0.3)、 勾色white、checkboxLineW、checkboxCorner | 方色tincolor、渐变（checkboxBeginngAlpha、checkboxEndingAlpha）、 勾色white、checkboxCorner、checkboxLineW | 叉色同左 | 叉色removeHighlightedColor | 字色white、方色tinColor、checkboxCorner | \n带勾| 带色white(0.3)、 勾色white、渐变（checkboxBeginngAlpha、0.01）、checkboxLineW、checkboxCorner、checkboxPadding | 带色tincolor、 勾色white、    渐变（checkboxBeginngAlpha、0.01）、 checkboxCorner、checkboxPadding、checkboxLineW | 叉色同左 | 叉色removeHighlightedColor | 字色white、带色tinColor（渐变（checkboxBeginngAlpha、0.01））、checkboxCorner | \n斜带勾| 带色white(0.3)、 勾色white、checkboxLineW | 带色tincolor、 勾色white、checkboxLineW | 叉色同左 | 叉色removeHighlightedColor | 底色tinColor、字色white |\n三角勾| 角色white(0.3)、 勾色white、checkboxLineW | 角色tincolor、 勾色white、checkboxLineW | 叉色同左 | 叉色removeHighlightedColor | 底色tinColor、字色white |\n心| 心色white(0.7)、checkboxLineW、 无勾 | 心色tincolor、 无勾 | 叉色同左、removeType为circle | 叉色removeHighlightedColor | 同circle |\n星 | 星色white(0.3)、border色white(0.7)、isShowBorder、checkboxLineW、无勾 | 星色tincolor、无勾、无border  | 叉色同左、removeType为circle | 叉色removeHighlightedColor | 同circle |\n\n### 更多使用配置组合效果请download本项目或fork本项目查看\n\n\n## ScreenShots\n\n#### 1\n\u003cimg src=\"https://github.com/targetcloud/TGPhotoPicker/blob/master/img/IMG_2480.PNG\" width = \"60%\" /\u003e\n\n#### 2\n\u003cimg src=\"https://github.com/targetcloud/TGPhotoPicker/blob/master/img/IMG_2481.PNG\" width = \"60%\" /\u003e\n\n#### 3\n\u003cimg src=\"https://github.com/targetcloud/TGPhotoPicker/blob/master/img/IMG_2482.PNG\" width = \"60%\" /\u003e\n\n#### 4\n\u003cimg src=\"https://github.com/targetcloud/TGPhotoPicker/blob/master/img/IMG_2483.PNG\" width = \"60%\" /\u003e\n\n#### 5\n\u003cimg src=\"https://github.com/targetcloud/TGPhotoPicker/blob/master/img/IMG_2484.PNG\" width = \"60%\" /\u003e\n\n#### 6\n\u003cimg src=\"https://github.com/targetcloud/TGPhotoPicker/blob/master/img/IMG_2485.PNG\" width = \"60%\" /\u003e\n\n#### 7\n\u003cimg src=\"https://github.com/targetcloud/TGPhotoPicker/blob/master/img/IMG_2486.PNG\" width = \"60%\" /\u003e\n\n#### 8\n\u003cimg src=\"https://github.com/targetcloud/TGPhotoPicker/blob/master/img/IMG_2487.PNG\" width = \"60%\" /\u003e\n\n#### 9\n\u003cimg src=\"https://github.com/targetcloud/TGPhotoPicker/blob/master/img/IMG_2488.PNG\" width = \"60%\" /\u003e\n\n#### 10\n\u003cimg src=\"https://github.com/targetcloud/TGPhotoPicker/blob/master/img/IMG_2489.PNG\" width = \"60%\" /\u003e\n\n#### 11\n\u003cimg src=\"https://github.com/targetcloud/TGPhotoPicker/blob/master/img/IMG_2490.PNG\" width = \"60%\" /\u003e\n\n#### 12\n\u003cimg src=\"https://github.com/targetcloud/TGPhotoPicker/blob/master/img/IMG_2491.PNG\" width = \"60%\" /\u003e\n\n#### 13\n\u003cimg src=\"https://github.com/targetcloud/TGPhotoPicker/blob/master/img/IMG_2492.PNG\" width = \"60%\" /\u003e\n\n#### 14\n\u003cimg src=\"https://github.com/targetcloud/TGPhotoPicker/blob/master/img/IMG_2493.PNG\" width = \"60%\" /\u003e\n\n#### 15\n\u003cimg src=\"https://github.com/targetcloud/TGPhotoPicker/blob/master/img/IMG_2494.PNG\" width = \"60%\" /\u003e\n\n#### 16\n\u003cimg src=\"https://github.com/targetcloud/TGPhotoPicker/blob/master/img/IMG_2495.PNG\" width = \"60%\" /\u003e\n\n#### 17\n\u003cimg src=\"https://github.com/targetcloud/TGPhotoPicker/blob/master/img/IMG_2496.PNG\" width = \"60%\" /\u003e\n\n#### 18\n\u003cimg src=\"https://github.com/targetcloud/TGPhotoPicker/blob/master/img/IMG_2497.PNG\" width = \"60%\" /\u003e\n\n#### 19\n\u003cimg src=\"https://github.com/targetcloud/TGPhotoPicker/blob/master/img/IMG_2498.PNG\" width = \"60%\" /\u003e\n\n\n## 运行效果\n\n#### diagonalBelt\n![](https://github.com/targetcloud/TGPhotoPicker/blob/master/gif/diagonalBelt.gif) \n\n#### circle\n![](https://github.com/targetcloud/TGPhotoPicker/blob/master/gif/circle.gif) \n\n#### belt\n![](https://github.com/targetcloud/TGPhotoPicker/blob/master/gif/b.gif) \n\n#### square\n![](https://github.com/targetcloud/TGPhotoPicker/blob/master/gif/s.gif) \n\n#### onlyCheckbox\n![](https://github.com/targetcloud/TGPhotoPicker/blob/master/gif/o.gif) \n\n#### triangle\n![](https://github.com/targetcloud/TGPhotoPicker/blob/master/gif/t.gif) \n\n#### heart\n![](https://github.com/targetcloud/TGPhotoPicker/blob/master/gif/h.gif) \n\n#### star\n![](https://github.com/targetcloud/TGPhotoPicker/blob/master/gif/star.gif) \n\n\n## Installation\n- 下载并拖动TGPhotoPicker到你的工程中\n\n- Cocoapods\n```\npod 'TGPhotoPicker'\n```\n\n## Reference\n- http://blog.csdn.net/callzjy\n- https://github.com/targetcloud/TGImage \u003cimg src=\"https://github.com/targetcloud/TGImage/blob/master/snapShot/Banners.png\" width = \"12%\" hight = \"12%\"/\u003e\n\n如果你觉得赞，请`Star`\n\n\u003cimg src=\"https://github.com/targetcloud/TGPhotoPicker/blob/master/logo.png\" width = \"12%\" hight = \"12%\"/\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftargetcloud%2Ftgphotopicker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftargetcloud%2Ftgphotopicker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftargetcloud%2Ftgphotopicker/lists"}