我遇到问题我遇到了UIView
方法convertRect: fromView:
方法。情况如下:
我有一个覆盖UIView
类来创建一个随用户移动而旋转的视图(非常类似于TaskRabbit微调器)。为了创建旋转,我在子类视图中添加了一个额外的视图,然后我旋转了该视图。旋转的视图包含显然随旋转的子视图旋转的其他子视图。问题是,在子视图旋转之后,我需要找到这些附加子视图的位置,相对于原始覆盖视图 - 而不是旋转视图。为此,在我的UIView
课程中,我有以下内容:
[self convertRect:currentView.frame fromView:rotationView];
但是,当我打印出转换后的矩形框时,坐标不准确。是否有人遇到此问题,在视图轮换后convertRect: fromView:
不准确?
修改
具体来说,关于不准确的点,我甚至看不到应该是什么和它是什么之间的关系 - 即关闭特定的角度,x / y翻转等。例如,应该点be(25,195)返回(325.25,273.16)
答案 0 :(得分:1)
我假设你通过对它们应用变换来旋转你的视图(CGAffineTransform
到视图或CATransform3D
到图层)。这是导致您的框架出现问题的原因。 UIView frame的文档说:
警告如果
transform
属性不是标识转换,则此属性的值未定义,因此应忽略。
正如您已经看到的那样,框架的值是未定义的。您仍然可以使用center
和bounds
属性。