2

我想对图像使用动画,从单击按钮开始并在 5 秒后停止。我使用此代码。

-(IBAction) btnClicked
{   
    CABasicAnimation *fullRotation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
    fullRotation.fromValue = [NSNumber numberWithFloat:0];
    fullRotation.toValue = [NSNumber numberWithFloat:((360*M_PI)/180)];
    fullRotation.duration = 6;
    fullRotation.repeatCount = 1e100f;
    fullRotation.delegate = self;
    [imgView.layer addAnimation:fullRotation forKey:@"360"];
    [imgView.layer setSpeed:3.0];
}

使用此代码动画已启动,但我不知道如何在 5 秒后停止此动画。

4

1 回答 1

1

甚至不处理CoreAnimation。我认为这可以通过UIView更容易编程的动画来做到这一点。查看UIView文档并尝试块动画(假设 iOS 4.0。如果没有,请使用旧样式)。

在此处查找有关UIView动画的文档。使用设置transform属性以进行旋转CGAffineTransformMakeRotation

这是一个UIView基于动画的旋转:

- (void)viewDidLoad
{
    [super viewDidLoad];
    UIView *viewToAnimate = [[[UIView alloc] initWithFrame:CGRectMake(50, 50, 100, 100)] autorelease];
    viewToAnimate.backgroundColor = [UIColor blueColor];
    [self.view addSubview:viewToAnimate];
    [UIView animateWithDuration:5 animations:^{
        viewToAnimate.transform=CGAffineTransformMakeRotation(M_PI);
    }];
}
于 2011-04-30T05:08:37.513 回答