旋转UIView的坐标系

时间:2014-06-03 20:04:14

标签: ios

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

我正在使用UIView" superview"使用许多子图像来围绕任意点执行图像旋转:

superview.transform = CGAffineTransformMakeRotation(M_PI/2);

这很完美,但似乎这也是旋转superview的坐标系。这又会混淆以下所有步骤。我找到了数百个关于旋转图像和mac开发的帖子和信息,显然有一种旋转坐标系的方法。我只是找不到适合iOS的东西。

有没有办法在不旋转坐标系的情况下旋转视图/如何在不影响图像的情况下旋转坐标系?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

  

似乎这也是旋转superview的坐标系

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

superview.transform = CGAffineTransformMakeRotation(M_PI/2);
  

有没有办法在不旋转坐标系的情况下旋转视图

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

someView.transform = CGAffineTransformMakeRotation(M_PI/2);

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

如果您正在创建自定义视图,您当然可以使用self从其自己的代码中引用该视图的实例:

self.transform = CGAffineTransformMakeRotation(M_PI/2);