1

我想将我的图像视图围绕锚点旋转 90 度。你可以在这里看到我想要实现的目标。在此处输入图像描述

我有这段代码。

CGFloat DegreesToRadians(CGFloat degrees)
{
    return degrees * M_PI / 180;
}

NSNumber* DegreesToNumber(CGFloat degrees)
{
    return [NSNumber numberWithFloat:
            DegreesToRadians(degrees)];
}
-(IBAction)rotate:(id)sender{
    CABasicAnimation *rotationAnimation = [CABasicAnimation
                                           animationWithKeyPath:@"transform.rotation.y"];

    [rotationAnimation setFromValue:DegreesToNumber(0)];
    [rotationAnimation setToValue:DegreesToNumber(90)];
    [rotationAnimation setDuration:3.0f];
    [rotationAnimation setRepeatCount:1];

    [[[self imgShare] layer] addAnimation:rotationAnimation forKey:@"rotate"];
}

存在视图问题。首先,当它旋转 90 度时,它立即翻转回原来的状态。另外我不知道如何将它围绕一个锚点。

有什么帮助吗?

4

2 回答 2

1

尝试这个:

self.imgShare.transform = CGAffineTransformMakeRotation(M_PI/2);
于 2013-07-03T09:34:54.600 回答
0

您正在使用CABAsicAnimation仅处理动画部分的 a 。旋转后旋转视图是您的责任。因此,您应该在旋转后更改视图的变换属性。

self.imgShare.transform = CGAffineTransformMakeRotation(M_PI/2);

对于您的问题anchorPoint。每个UIView都由 a 支持,CALayer并且每个CALayer都有一个anchorPoint属性。只需更改视图锚点,您就可以围绕该点旋转视图。

anchorPoint默认值为 0.5,0.5 。在 0.0 和 1.0 之间更改它。

于 2013-07-03T09:40:30.823 回答