在底部旋转图像?

时间:2016-04-08 13:56:11

标签: swift cocoa-touch uikit core-animation

假设我有一个时钟,我想将时针视图旋转到某个小时,假设它是UIImageView,其底部正好在屏幕的中心,所以旋转底部是锚点,我做:

  hour.layer.anchorPoint = CGPointMake(0.5,1.0);
    let angle:CGFloat = (5.0 / 12.0) * (3.14 * 2.0);
    hour.transform = CGAffineTransformMakeRotation(angle);

但接下来发生的事情是它从原来的位置移动,并将角度改为其他东西。

我无法理解你如何设置锚点?关于..?

1 个答案:

答案 0 :(得分:1)

事实证明,你首先必须设置锚点,然后才设置视图的帧,如果你先设置一个帧然后更改锚点,你会得到一个错误的锚点。

所以代码是:

        hour.layer.anchorPoint = CGPointMake(0.5,1.0);
        hour.frame=CGRectMake(self.frame.size.width/2.0-hourW/2.0, self.frame.size.height/2.0-hourH, hourW,hourH)
        self.addSubview(hour)



    hour.layer.anchorPoint = CGPointMake(0.5,1.0);
    let angle:CGFloat = (5.0 / 12.0) * (3.14 * 2.0);
    hour.transform = CGAffineTransformMakeRotation(angle);