ConvenientImagePicker
ConvenientImagePicker 是为 iOS 开发编写的美丽且简单的图像选择器解决方案,使用 Swift 实现。这是一个可以简单地在任何地方显示的视图控制器。优秀的交互、多选、照片选择器、暗黑模式等。
发行说明
最新版本是 0.2.1,修复了相册权限问题。更多信息请参见 发行说明
概览
ConvenientImagePicker 提供平滑的交互,具有出色的用户体验,可以显示系统相册,也可以显示指定的图片。
重要的是强调,ConvenientImagePicker 视图具有精确的手势控制。
要求
- iOS 9.3+
- Xcode 9.0+
- Swift 4.0+
安装
ConvenientImagePicker可以通过CocoaPods进行安装,请将以下条目添加到您的Podfile中
pod 'ConvenientImagePicker'
然后运行pod install
并在需要使用图像选择器的位置包含它
import ConvenientImagePicker
这是一个非常简单的方法。
用法
在准备显示此图像选择器时,我们假设您将调用此类函数
func PresentPhotoPicker()
好的,最简单版本是在此函数中添加以下代码
let pickerViewController = PickerViewController()
pickerViewController.delegate = self
pickerViewController.isSupportLandscape = true // A Boolean value that determines whether the ability of landscape exists.
self.present(pickerViewController, animated: true, completion: nil)
然后,您应在自己的视图控制器中实现ConvenientImagePickerDelegate
并实现以下代理函数
func imagePickerDidCancel(_ selectedImages: [Int : UIImage])
func imageDidSelect(_ imagePicker: PickerViewController, index: Int, image: UIImage?)
func imageDidDeselect(_ imagePicker: PickerViewController, index: Int, image: UIImage?)
func imageSelectMax(_ imagePicker: PickerViewController, wangToSelectIndex: Int, wangToSelectImage: UIImage?)
imagePickerDidCancel
将通知您用户已取消图像选择器,并返回用户选择的图像。
imageDidSelect
将通知您用户已选择一个图像。
imageDidDeselect
将通知您用户已取消选择一个图像。
imageSelectMax
将通知您用户想要选择一个图像,但这次他已经选择了限制数量的图像。
在最后三个函数中,您可以使用imagePicker.selectedImageCount
获取用户选择的图像数量。
请勿在函数PresentPhotoPicker
之外初始化pickerViewController
。
到目前为止,这是此pod的最简单用法。
可选配置
当然,您可以使用图像选择器的更多功能,甚至对其进行自定义,而不是仅使用默认配置。
请从这里的let pickerViewController = PickerViewController()
开始
pickerViewController.maxNumberOfSelectedImage = 50 // The maximum number of pictures allowed.
pickerViewController.allowMultipleSelection = true // A Boolean value that determines whether the picker view can mutiple selection.
pickerViewController.numberOfPictureInRow = 4 // The number of pictures in a row.
pickerViewController.intervalOfPictures = 5.0 // The interval between pictures.
pickerViewController.isSimpleMode = true // A Boolean value that determines whether the title label, count view, and close button exist.
pickerViewController.images = nil // The displayed images, it's will be photo library if nil.
pickerViewController.isDarkMode = false // A Boolean value that determines whether darkmode enable.
pickerViewController.isSwitchDarkAutomately = true // A Boolean value that determines whether darkmode can switched automately. (only iOS 13 valid)
pickerViewController.initialSelectedIndex = [0,1,2,3,4] // A set of index of selected image when the picker appears.
pickerViewController.isAnimated = true // A Boolean value that determines whether the appear animation exists.
pickerViewController.customSelectedImage // A selectedImage type value that relates to the image of selected picture.
pickerViewController.isSupportLandscape = true // A Boolean value that determines whether the ability of landscape exists.
当'isSimpleMode = false'时
当配置列表中出现pickerViewController.isSimpleMode = false
时,您应该了解titleView
、titleLabel
、countLabel
、doneButton
和titleViewEffectView
。(如图右所示)
在isSimpleMode = false
的情况下,您可以自定义titleView
、titleLabel
、countLabel
和doneButton
。
您还可以自定义titleViewEffectView
、mainView
和collectionView
,无论isSimpleMode
的值是什么,因为它们始终存在。
顺便说一句,在isSimpleMode = true
的情况下可以自定义decorationBar
。
如果您需要更多的控制器覆盖,需要使用extension PickerViewController
。
⚠️ 注意
- 如果您想在Info.plist中添加照片选择器,请不要忘记添加
NSPhotoLibraryUsageDescription
。 - 在使用照片选择器之前请检查读取相册权限。
- 在准备显示图像选择器时,请始终初始化新变量
pickerViewController
。
实例
在苹果iOS应用《文字卡片》中,已经导入了 ConvenientImagePicker。
许可证
ConvenientImagePicker 以 MIT 许可证发布。详情请参阅 LICENSE。
感谢您的支持!