如何解决使用 Swift5 在 iOS 中裁剪、旋转、调整图像大小
我以编程方式添加了一个图像视图,它使用纵横比。我想在用户选择图像时裁剪、旋转和调整该图像的大小。我在这里浏览了一些代码,但没有任何帮助。我在这里发布我的代码以便更好地理解。 非常感谢您的帮助。 谢谢。
代码:CanvasViewController: - 纵横比来自前一个屏幕。所选图像以其纵横比 [先前选择] 显示在画布屏幕上。 现在我想显示所选图像的裁剪、调整大小和旋转功能。
import UIKit
class CanvasViewController: UIViewController,UIPopoverPresentationControllerDelegate {
@IBOutlet weak var midBtn: UIButton!
@IBOutlet weak var canvasView: UIView!
var aspectRatio: CGFloat = 0.0
var viewColor = UIColor()
var imagesForgallery = [UIImage]()
var imageForPexel = UIImage()
override func viewDidLoad() {
super.viewDidLoad()
midBtn.addTarget(self,action: #selector(tapped),for: .touchUpInside)
createCanvasOnAspectRatio()
}
@objc private func tapped() {
let popVC = storyboard?.instantiateViewController(withIdentifier: "ModalViewController") as! ModalViewController
popVC.modalPresentationStyle = .popover
let popOverVC = popVC.popoverPresentationController
popOverVC?.delegate = self
popOverVC?.sourceView = self.midBtn
popOverVC?.sourceRect = CGRect(x: self.midBtn.bounds.midX,y: self.midBtn.bounds.minY,width: 0,height: 0)
popOverVC?.permittedArrowDirections = .down
popVC.preferredContentSize = CGSize(width: 300,height: 50)
self.present(popVC,animated: true)
}
func adaptivePresentationStyle(for controller: UIPresentationController) -> UIModalPresentationStyle {
return .none
}
func createCanvasOnAspectRatio() {
let View1: UIView = {
let viewView = UIView()
viewView.translatesAutoresizingMaskIntoConstraints = false
viewView.contentMode = .scaleAspectFit
print(UserDefaults.standard.bool(forKey: "backgroundColourSelected"))
if UserDefaults.standard.bool(forKey: "backgroundColourSelected") {
viewView.backgroundColor = self.viewColor
}else {
viewView.backgroundColor = .white
}
viewView.clipsToBounds = true
return viewView
}()
self.canvasView.addSubview(View1)
View1.centerXAnchor.constraint(equalTo: canvasView.centerXAnchor,constant: 0).isActive = true
View1.centerYAnchor.constraint(equalTo: canvasView.centerYAnchor,constant: 0).isActive = true
View1.widthAnchor.constraint(equalTo: canvasView.widthAnchor,constant: 0).isActive = true
View1.heightAnchor.constraint(equalTo: canvasView.widthAnchor,multiplier: aspectRatio).isActive = true
if UserDefaults.standard.bool(forKey: "imageSelectedFromgallexy") == true {
for item in 0..<self.imagesForgallery.count {
let image = imagesForgallery[item]
print(image)
let image_View: UIImageView = {
let imageV = UIImageView()
imageV.image = image
imageV.contentMode = .redraw
imageV.translatesAutoresizingMaskIntoConstraints = false
imageV.clipsToBounds = true
return imageV
}()
View1.addSubview(image_View)
image_View.centerXAnchor.constraint(equalTo: canvasView.centerXAnchor,constant: 0).isActive = true
image_View.centerYAnchor.constraint(equalTo: canvasView.centerYAnchor,constant: 0).isActive = true
image_View.widthAnchor.constraint(equalTo: canvasView.widthAnchor,constant: 0).isActive = true
image_View.heightAnchor.constraint(equalTo: canvasView.widthAnchor,multiplier: aspectRatio).isActive = true
}
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。