繁体   English   中英

UIView的旋转坐标系

[英]Rotate coordinate System of an UIView

我是一个完整的初学者,所以请原谅我可能很愚蠢的问题。

我使用带有许多子图像的UIView “ superview”来执行图像围绕任意点的旋转:

superview.transform = CGAffineTransformMakeRotation(M_PI/2);

这可以完美地工作,但是似乎这也在旋转超级视图的坐标系。 这反过来又弄乱了以下所有步骤。 我发现了数百篇有关旋转图像的文章和信息,对于mac开发,显然有一种旋转坐标系的方法。 我只是找不到适用于iOS的东西。

有没有一种方法可以在不旋转坐标系的情况下旋转视图/如何旋转坐标系而不影响图像?

谢谢你的帮助。

似乎这也在旋转超级视图的坐标系

您是对的-旋转超级视图的坐标系正是您在做的事情:

superview.transform = CGAffineTransformMakeRotation(M_PI/2);

有没有一种方法可以旋转视图而无需旋转坐标系

当然,只需为您的视图而不是其超级视图设置transform属性。 对于任何view someView ,您可以说:

someView.transform = CGAffineTransformMakeRotation(M_PI/2);

请注意,这实际上是旋转视图自己的坐标系-不会旋转视图本身。 这意味着将旋转所有图形,但视图的框架将保持不变。 您可能需要调整框架以解决此问题。 例如,如果您有一个通常高100像素,宽300像素的矩形视图,则可能需要使其高300像素,宽100像素,以确保所有内容仍然可见。

如果要创建自定义视图,则当然可以使用self从其自己的代码内部引用该视图的实例:

self.transform = CGAffineTransformMakeRotation(M_PI/2);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM