旋转iOS的UIImageView问题

时间:2017-06-13 14:01:58

标签: ios swift uiimageview uigesturerecognizer cgaffinetransform

我有一个带有平移和旋转手势的图像视图。平移和旋转功能如预期的那样但在某些时候我必须在更改图像时将图像视图置于其初始位置。为此,我将图像视图的帧再次设置为旧帧。框架已设置,但图像有时会缩小。任何帮助表示赞赏。 轮换代码如下

 @objc fileprivate func handleRotationGesture1(sender:UIRotationGestureRecognizer)
{
    if sender.state == .began || sender.state == .changed {
        sender.view?.transform = (sender.view?.transform.rotated(by: sender.rotation))!
        sender.rotation = 0
    }
}
func repositionImages()
{
    imageView1.frame = imageView1Frame
    imageView2.frame = imageView2Frame
    imageView1.transform = CGAffineTransform.init(rotationAngle: 0)
    imageView2.transform = CGAffineTransform.init(rotationAngle: 0)

    imageView1.image = UIImage.init(cgImage: (image1.cgImage)!, scale: (image1.scale), orientation: .up)
    imageView2.image = UIImage.init(cgImage: (image2.cgImage)!, scale: (image2.scale), orientation: .up)

}

2 个答案:

答案 0 :(得分:1)

您想使用"$('a'*10) $('b'*10)" -replace '(^.{10})(.*$)','$1' 重新定位imageView的转换。

.identity

答案 1 :(得分:0)

func repositionImages()
{

    imageView1.transform = .identity
    imageView2.transform = .identity
    imageView1.frame = imageView1Frame
    imageView2.frame = imageView2Frame

}

这段代码就行了。我在更改图像视图的transform属性之前设置了框架。改变了这项工作。感谢Jeron的帮助。