我是一个完全的初学者,所以请原谅我可能愚蠢的问题。
我正在使用UIView
" superview"使用许多子图像来围绕任意点执行图像旋转:
superview.transform = CGAffineTransformMakeRotation(M_PI/2);
这很完美,但似乎这也是旋转superview的坐标系。这又会混淆以下所有步骤。我找到了数百个关于旋转图像和mac开发的帖子和信息,显然有一种旋转坐标系的方法。我只是找不到适合iOS的东西。
有没有办法在不旋转坐标系的情况下旋转视图/如何在不影响图像的情况下旋转坐标系?
感谢您的帮助。
答案 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);