![](/img/trans.png)
[英]How can I move a UIView, but leave its content positions unchanged relative to the superview?
[英]How can I move an rotated view relative to the coordinate system of it's superview?
更改10度旋转视图的中心点时,该中心点的指定坐标将与超级视图的坐标系不匹配。
例如,当您想直接向上移动y-50,并且没有水平移动时(即x = theRotatedView.center.x),则y方向的偏移将被旋转。 视图将向上和向右移动,而不仅仅是向上。
旋转是在视图上完成的,而不是在图层上完成的。
我可以将其包装在进行运动的超级视图中,而子视图进行旋转。 然后,我在转换方面没有任何问题。 但是也许有一些简单的解决方案。 我只想移动旋转视图的中心,就好像该视图未旋转一样,也就是说,当希望将y减10时,不必担心旋转坐标。 是否有任何在坐标系之间转换的方法或函数,以便我可以只在超级视图坐标中指定中心点坐标,而将这些点或坐标应用于旋转视图的center属性时就正确了吗?
查看CGAffineTransform方法(例如CGAffineTransformMake),以更轻松的方式生成所需的转换。 您可以将旋转和平移组合在一个矩阵中。
您可以将坐标乘以转换矩阵。 这会将您的坐标放入父视图的“坐标空间”。 您还可以使用父视图的逆矩阵获取父视图中的坐标,并将其返回到“世界空间”。
http://en.wikipedia.org/wiki/Rotation_matrix
进一步阅读该页面以获取伪代码示例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.