YZImagePicker
需求
- iOS 12.0+
- Xcode 11+
- Swift 5.0+
备注
要使用此库,需要在 info.plist
文件中设置以下密钥。
NSCameraUsageDescription
- 隐私 - 相机使用说明。NSPhotoLibraryUsageDescription
- 隐私 - 相册使用说明。
功能
- 用于通过
UIImagePickerController
从设备相机或照片库中选择图像。 - 内置图像裁剪功能,使用 RSKImageCropper 库。
用法
1. YZImagePickerConfig 类
YZImagePickerConfig
用来配置 YZImagePicker
对象。它将初始化 cropMode
和 cropConfig
属性。
属性
cropMode
- 配置图像裁剪模式,该属性的可用值包括.circle
、.square
和.custom
。cropConfig
- 使用它来配置裁剪属性,要了解更多详细信息,请参考 YZImagePickerCropConfig。
初始化
let objImagePickerConfig = YZImagePickerConfig(.circle)
2. YZImagePickerCropConfig 类
YZImagePickerCropConfig
用来配置当 cropMode = .custom
时 YZImagePickerConfig
对象。它将初始化以下属性。
属性
vTopSpace
- 用于配置裁剪矩形布局的顶部垂直空间。hLeadingSpace
- 用于配置裁剪矩形布局的领先水平空间。hTrailingSpace
- 用于配置裁剪矩形布局的尾部水平空间。vBottomSpace
- 用于配置裁剪矩形布局的底部垂直空间。cornerRadius
- 用于配置裁剪矩形布局的圆角。默认值是.leastNonzeroMagnitude
。width
- 用于根据提供的hLeadingSpace
和hTrailingSpace
计算宽度。height
- 用于根据提供的vTopSpace
和vBottomSpace
计算高度。cgRect
- 用于根据提供的vTopSpace
、hLeadingSpace
、vBottomSpace
和hTrailingSpace
计算CGRect
。
初始化
let objImageCropConfig = YZImagePickerCropConfig(100, leadingSpace: 30, bottomSpace: 100, trailingSpace: 30, cornerRadius: 8)
let objImagePickerConfig = YZImagePickerConfig(.custom, cropConfig: objImageCropConfig)
3. YZImagePicker 类
YZImagePicker
用于从设备相机捕获图像或根据提供的属性从照片库中选择图像。
属性
presentationController
- 用于显示UIImagePickerController
和RSKImageCropViewController
。anyObject
- 用于存储Any
类型对象以传递值。delegate
- 用于处理事件,如用户选择图像或取消操作。imagePickerConfig
- 用于存储YZImagePickerConfig
。
初始化
import YZImagePicker
class ViewController: UIViewController, YZImagePickerDelegate {
var objImagePicker: YZImagePicker!
override func viewDidLoad() {
super.viewDidLoad()
if objImagePicker == nil {
objImagePicker = YZImagePicker(self, delegate: self) //It will initialize object without Cropping features.
}
}
}
class ViewController: UIViewController, YZImagePickerDelegate {
var objImagePicker: YZImagePicker!
override func viewDidLoad() {
super.viewDidLoad()
if objImagePicker == nil {
let yzImageCropConfig = YZImagePickerCropConfig(120, leadingSpace: 20, bottomSpace: 120, trailingSpace: 20, cornerRadius: 5)
let yzImagePickerConfig = YZImagePickerConfig(.custom, cropConfig: yzImageCropConfig)
objImagePicker = YZImagePicker(self, delegate: self, imagePickerConfig: yzImagePickerConfig) //It will initialize object with Cropping features.
}
}
}
方法
takePhoto()
- 用于从设备相机拍照。chooseFromLibrary()
- 用于从设备照片库中选择照片。
YZImagePickerDelegate
@objc optional func imagePickerDidSelected(image: UIImage?, anyObject: Any?)
- 用户选择或捕获图像时调用代理方法。@objc optional func imagePickerDidCancel(anyObject: Any?)
- 用户取消选择或捕获图片时,调用该代理方法。@objc optional func imagePickerPermissionDidChanged(status: Int, isGranted: Bool, anyObject: Any?)
- 当用户更改设备相机或相册权限时,调用该代理方法。
安装
YZImagePicker 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中
pod 'YZImagePicker', '~> 0.1.1'
作者
Vipul Patel (Yudiz Solutions Pvt. Ltd.), [email protected]
许可协议
YZImagePicker 在 MIT 许可协议下发布。有关详细信息,请参阅 LICENSE。