IGRPhotoTweaks
IGRPhotoTweaks是一个允许扩展界面以裁剪照片的swift 4.2库,基于PhotoTweaks。它可以允许用户拖动、旋转、缩放图像并进行裁剪。您会发现它模仿了iOS 9上Photos.app的交互方式。:]
使用方法
IGRPhotoTweaksViewController是YourPhotoTweaksViewController的基础界面。IGRPhotoTweaksViewController提供了所有裁剪照片的操作,包括平移、旋转和缩放。
要使用它,
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "showCrop" {
let yourCropViewController = segue.destination as! YourPhotoTweaksViewController
yourCropViewController.image = sender as! UIImage
yourCropViewController.delegate = self;
}
}
self.cropAction()
是调用编辑完成操作的函数。
self.dismissAction()
是调用取消编辑操作的函数。
self.changedAngel(value: radians)
是设置旋转角度的函数。
self.setCropAspectRect(aspect: "9:16")
是设置裁剪视图的纵横比的函数。
self.resetAspectRect()
是重置所有先前纵横比的函数。
self.resetView()
是重置所有先前操作的函数。
获取裁剪图像
extension ViewController: IGRPhotoTweakViewControllerDelegate {
func photoTweaksController(_ controller: IGRPhotoTweakViewController, didFinishWithCroppedImage croppedImage: UIImage) {
self.imageView?.image = croppedImage
_ = controller.navigationController?.popViewController(animated: true)
}
func photoTweaksControllerDidCancel(_ controller: IGRPhotoTweakViewController) {
_ = controller.navigationController?.popViewController(animated: true)
}
}
设置IGRPhotoTweaks控制器
override func viewDidLoad() {
super.viewDidLoad()
self.isAutoSaveToLibray = true
}
设置/控制角度
fileprivate func setupSlider() {
self.angleSlider?.minimumValue = -Float(IGRRadianAngle.toRadians(45))
self.angleSlider?.maximumValue = Float(IGRRadianAngle.toRadians(45))
self.angleSlider?.value = 0.0
}
@IBAction func onChandeAngleSliderValue(_ sender: UISlider) {
let radians: CGFloat = CGFloat(sender.value)
self.changeAngle(radians: radians)
}
自定义视图
override open func setupThemes() {
IGRCropLine.appearance().backgroundColor = UIColor.green
IGRCropGridLine.appearance().backgroundColor = UIColor.yellow
IGRCropCornerView.appearance().backgroundColor = UIColor.purple
IGRCropCornerLine.appearance().backgroundColor = UIColor.orange
IGRCropMaskView.appearance().backgroundColor = UIColor.blue
IGRPhotoContentView.appearance().backgroundColor = UIColor.gray
IGRPhotoTweakView.appearance().backgroundColor = UIColor.brown
}
override open func customBorderColor() -> UIColor {
return UIColor.red
}
override open func customBorderWidth() -> CGFloat {
return 2.0
}
override open func customCornerBorderWidth() -> CGFloat {
return 4.0
}
override open func customCropLinesCount() -> Int {
return 3
}
override open func customGridLinesCount() -> Int {
return 4
}
override open func customCornerBorderLength() -> CGFloat {
return 30.0
}
override open func customIsHighlightMask() -> Bool {
return true
}
override open func customHighlightMaskAlphaValue() -> CGFloat {
return 0.3
}
示例
IGRPhotoTweaks.xcodeproj --> IGRPhotoTweaks 目标 /示例
安装
IGRPhotoTweaks 可在 Cocoapods 中找到。在你的 Podfile 中添加以下内容
pod 'IGRPhotoTweaks', '~> 1.0.0'
或者,你可以手动将 IGRPhotoTweaks
文件夹拖入你的 Xcode 项目中。
问题
不适用于 Objective-C
小技巧
如果与现有的 UIImagePickerController 一起使用,请确保设置 allowsEditing = NO
,否则你可能会强制用户在显示 IGRPhotoTweaksViewController 之前使用本地编辑工具裁剪。