cabasicanimation在ios7中不起作用



我正在尝试将旋转器添加到视图中,并使用以下代码对其进行动画化。它在iOS 6中的工作状态很好,但在iOS 7中却没有。旋转器不会旋转

这是使用旋转器创建图层的函数

- (CALayer *)spinnerLayer
{
CALayer *result = nil;
UIImage *spinnerImage = [UIImage imageNamed:@"spin.png"];
if (spinnerImage != nil)
{
    CGSize size = [spinnerImage size];
    CALayer *layer = [[CALayer alloc] init];
    if (layer != nil)
    {
        [layer setFrame:CGRectMake(0.0, 0.0, size.width, size.height)];
        [layer setContents:(id)[spinnerImage CGImage]];
        CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
        if (anim != nil)
        {
            [anim setToValue:@(M_PI * 2.0)];
            [anim setRepeatCount:INFINITY];
            [anim setDuration:1.0];
            [anim setFillMode:kCAFillModeBoth];
            [layer addAnimation:anim forKey:@"Rotation"];
        }
        result = [[layer retain] autorelease];
        [layer release];
    }
}
return result;

}

仅在显示图像视图的ViewController的viewDidAppear中添加动画来修复它。

从这里有帮助的见解

最新更新