convertRect fromView在旋转后没有返回正确的帧

时间:2012-05-24 15:17:23

标签: iphone core-animation

我遇到问题我遇到了UIView方法convertRect: fromView:方法。情况如下: 我有一个覆盖UIView类来创建一个随用户移动而旋转的视图(非常类似于TaskRabbit微调器)。为了创建旋转,我在子类视图中添加了一个额外的视图,然后我旋转了该视图。旋转的视图包含显然随旋转的子视图旋转的其他子视图。问题是,在子视图旋转之后,我需要找到这些附加子视图的位置,相对于原始覆盖视图 - 而不是旋转视图。为此,在我的UIView课程中,我有以下内容:

[self convertRect:currentView.frame fromView:rotationView];

但是,当我打印出转换后的矩形框时,坐标不准确。是否有人遇到此问题,在视图轮换后convertRect: fromView:不准确?

修改

具体来说,关于不准确的点,我甚至看不到应该是什么和它是什么之间的关系 - 即关闭特定的角度,x / y翻转等。例如,应该点be(25,195)返回(325.25,273.16)

1 个答案:

答案 0 :(得分:1)

我假设你通过对它们应用变换来旋转你的视图(CGAffineTransform到视图或CATransform3D到图层)。这是导致您的框架出现问题的原因。 UIView frame的文档说:

  

警告如果transform属性不是标识转换,则此属性的值未定义,因此应忽略。

正如您已经看到的那样,框架的值是未定义的。您仍然可以使用centerbounds属性。