【发布时间】:2018-10-01 04:45:48
【问题描述】:
我正在使用一个基本的照片编辑器,它应该可以缩放、旋转和翻转照片。我在滚动视图中使用图像视图(方面填充),它允许我轻松缩放。但是当我尝试旋转或翻转时,结果不是我所期望的。图像视图保持原始帧并且看起来像旋转图像。滚动视图缩放比例发生变化。有关如何执行此操作的任何建议?
在转换之前有关于设置图像视图锚点以匹配滚动视图锚点的建议也很棒,因为我不想在转换后显示图像的不同部分,只是显示图像的相同部分图片,但已旋转。
到目前为止我的代码:
override func viewDidLoad() {
super.viewDidLoad()
scrollView.delegate = self
setZoomScale()
scrollView.zoomScale = scrollView.minimumZoomScale
}
@IBAction func rotateAnticlockwise(_ sender: UIButton) {
rotationAngle -= 0.5
transformImage()
}
func transformImage(){
var transform = CGAffineTransform.identity
transform = transform.rotated(by: .pi * rotationAngle)
imageView.transform = transform
}
func setZoomScale(){
let imageSize = imageView.image!.size
let smallestDimension = min(imageSize.width, imageSize.height)
scrollView.minimumZoomScale = scrollView.bounds.width / smallestDimension
scrollView.maximumZoomScale = smallestDimension / scrollView.bounds.width
}
【问题讨论】:
-
"结果不是我所期望的" 那么您会期待什么呢?目前尚不清楚这里的目标是什么。
-
我希望 imageView 框架被转换,但它似乎只旋转图像。
-
创建旋转版本图像的方法是旋转图像。不是图像视图。实际图像。
-
我尝试旋转图像并使用旋转后的图像创建一个新的图像视图,然后删除旧的图像视图并添加新的图像视图。但是滚动视图根本不会更新其内容大小。即使我在运行时将内容大小设置为新的图像视图内容大小。
标签: swift uiscrollview uiimageview autolayout transform