【问题标题】:Swift 3: Image returns to its original size or transform after rotationSwift 3:图像在旋转后恢复到原来的大小或变换
【发布时间】:2017-05-15 04:21:20
【问题描述】:

我有图像查看里面的大图像,因为我使用旋转它
CGAffineTransform() ,它被重新缩放到原来的变换或大小,仍然无法弄清楚。

需要的工作场景是:

我希望将图像视图缩放到其原始大小的 %35,然后能够以编程方式旋转它而不改变其大小。我怎样才能做到这一点?

编辑:

完整的场景是,我有上面提到的图像视图(子)作为其子视图的大型图像视图(我们称之为主视图)。

我将 (main) 缩放 0.5,也缩放 (sub),然后将 (sub) 缩放 0.35,所以当我旋转时,每次都很难缩放。这就是为什么我想要一种无需再次缩放即可旋转的方法。

【问题讨论】:

    标签: ios swift3 uiimageview rotation cgaffinetransform


    【解决方案1】:
    let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 50, height: 50))
    var t = CGAffineTransform.identity
    t = t.scaledBy(x: 0.35, y: 0.35)//35% of size
    //You can change alter this t value any way you want.
    t = t.rotated(by: CGFloat.pi / 4)//Random value, change to your wanted value
    //And then just set it
    imageView.transform = t
    

    编辑: 此代码有效。现在重新测试了。你确定你使用正确吗? 现在刚跑测试了。

    var t = CGAffineTransform.identity
    var imageView = UIImageView()
    
    func scaleImage() {
        t = t.scaledBy(x: 0.35, y: 0.35)//35% of size
        imageView.transform = t
    }
    func rotateImage() {
        t = t.rotated(by: CGFloat.pi / 4)//Random value, change to your wanted value
        imageView.transform = t
    }
    

    【讨论】:

    • 我试过了,但没有像我希望的那样工作。问题是通过旋转图像视图被缩小到其原始大小。请检查我的编辑说明。
    • 感谢编辑,我明天上班试一下,告诉你。但是你能解释一下编辑后有什么不同吗?
    • 刚刚做了一个有用的例子,向您展示每次都必须设置t,并展示如何将两者结合起来,而不会使图像变为原始大小。我的回答改变了转换,而不重置它。基本上就是这样。您应该能够在您的代码中使用此代码,只需进行一两次调整。也许为每个图像声明 t1 和 t2,并根据需要对其进行转换。旋转时它们不应重置为原始大小。
    • 明天上班试试,再次感谢您的帮助,不胜感激。
    猜你喜欢
    • 2015-12-07
    • 2019-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-11
    • 2018-05-28
    相关资源
    最近更新 更多