0

我正在尝试围绕不同的锚点旋转 UIView。当我第一次创建 UIView 时,我将锚点设置为 (0.0, 0.5)。我使用 CGAffineTransformMakeRotation 旋转视图。当我单击 UIView 的另一侧时,我想将锚点设置为 (1.0, 0.5)。这会移动 UIView 以将锚点设置为中心点。我读到其他答案,我应该这样做:“将边界的宽度和高度乘以新旧锚点的标准化值,取两个锚点的差,并将该差应用于图层的位置”

我试过了,但我无法将 UIView 设置为完全相同的位置。使用此代码:

self.transform = CGAffineTransformTranslate(self.transform, self.bounds.size.width, 0);

将其设置为完全相同的位置,但是。当我再次旋转(它应该围绕新的锚点旋转)时,它会翻转 UIView 或发生一些奇怪的事情。

4

1 回答 1

1

当由于锚点的变化而重新定位视图时,尽量不要使用该transform属性。相反,使用frame属性或center属性移动您的视图(或者position如果您正在使用 CALayer 对象)。另外,你能发布更多代码来展示如何精确地旋转视图吗?

于 2011-03-11T19:40:26.883 回答