使用CABasicAnimation iphone启动和停止动画

时间:2011-04-30 04:55:32

标签: iphone animation cabasicanimation

我想使用动画制作图像,点击按钮开始并在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秒后停止此动画。

1 个答案:

答案 0 :(得分:1)

甚至不处理CoreAnimation。我认为这可以通过UIView动画完成,它更容易编程。查看UIView文档并尝试块动画(假设是ios4.0。如果没有,请使用旧版本。)

查看http://developer.apple.com/library/ios/#documentation/WindowsViews/Conceptual/ViewPG_iPhoneOS/AnimatingViews/AnimatingViews.html%23//apple_ref/doc/uid/TP40009503-CH6-SW1有关UIView动画的文档。设置transform属性以使用CGAffineTransformMakeRotation进行旋转

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

- (void)viewDidLoad {
[super viewDidLoad];
UIView *v = [[[UIView alloc] initWithFrame:CGRectMake(50, 50, 100, 100)] autorelease];
v.backgroundColor = [UIColor blueColor];
[self.view addSubview:v];
[UIView animateWithDuration:5 animations:^{v.transform=CGAffineTransformMakeRotation(M_PI);}];

}