0

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

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

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

编辑

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

4

1 回答 1

1

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

警告 如果该transform属性不是恒等变换,则该属性的值是未定义的,因此应该被忽略。

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

于 2012-05-24T17:20:12.777 回答