【发布时间】:2012-10-17 12:38:08
【问题描述】:
如何将视图的旋转重置为零,同时保持该视图上的其他转换不变。
我不能使用:
[myView setTransform:CGAffineTransformIdentity]
因为它也会休息所有其他转换。
或者我只想要视图的框架,如果它的旋转为 0。
【问题讨论】:
标签: ios uiview frame cgaffinetransform
如何将视图的旋转重置为零,同时保持该视图上的其他转换不变。
我不能使用:
[myView setTransform:CGAffineTransformIdentity]
因为它也会休息所有其他转换。
或者我只想要视图的框架,如果它的旋转为 0。
【问题讨论】:
标签: ios uiview frame cgaffinetransform
myView.transform = CGAffineTransformRotate(myView.transform, -currentRotationAngle);
这将采用当前变换,并将其旋转到 0 度
编辑:我认为您需要按当前旋转值的倒数旋转,而不仅仅是将其设置为 0
【讨论】:
CGAffineTransformRotate 在这里没有帮助,因为它将该角度的旋转应用于现有旋转。
要在保持过渡的同时重置旋转,您可以尝试以下代码:
CGAffineTransform inverse = CGAffineTransformInvert(myView.affineTransform);
inverse.tx = 0;
inverse.ty = 0;
myView.transform = inverse;
【讨论】: