Ios Swift 3:图像在旋转后恢复到原始大小或变换

Ios Swift 3:图像在旋转后恢复到原始大小或变换,ios,swift3,uiimageview,rotation,cgaffinetransform,Ios,Swift3,Uiimageview,Rotation,Cgaffinetransform,当我使用 CGAffineTransform(),它被重新缩放到其原始变换或大小,但仍然无法理解这一点 需要的工作场景是: 我希望将图像视图缩放到其原始大小的%35,然后能够以编程方式旋转它而不更改其大小。我怎样才能做到这一点 编辑: 完整的场景是,我有一个大的Imageview(我们称之为main),上面提到的Imageview(sub)是它的子视图 我用0.5缩放(main),这也会缩放(sub),然后我用0.35缩放(sub),所以每次旋转都很难缩放。这就是为什么我想要一种无需再次缩放的旋

当我使用
CGAffineTransform(),它被重新缩放到其原始变换或大小,但仍然无法理解这一点

需要的工作场景是:

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

编辑:

完整的场景是,我有一个大的Imageview(我们称之为main),上面提到的Imageview(sub)是它的子视图

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

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,并根据需要对它们进行变换。他们不应该重置为原来的大小时,旋转。我会尝试在明天的工作,再次感谢您的帮助,谢谢。