更改锚点,然后使用CGAffineTransformMakeRotation旋转

时间:2011-03-11 17:25:04

标签: ios rotation translate-animation

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

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

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

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

1 个答案:

答案 0 :(得分:1)

由于锚点发生变化而重新定位视图时,请尝试不使用transform属性。相反,使用frame属性或center属性(或position,如果您正在使用CALayer对象)移动视图。此外,您是否可以发布更多代码,显示如何完全旋转视图?

相关问题