我在IBAction(按下按钮)方法中使用了代码:
CABasicAnimation *rotateButton; //don't forget to release
rotateButton = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
rotateButton.fromValue = [NSNumber numberWithFloat:0];
rotateButton.toValue = [NSNumber numberWithFloat:((720*M_PI)/180)];
rotateButton.duration = 0.75;
rotateButton.repeatCount = 1;
[sender addAnimation:rotateButton forKey:@"720"];
并且只有在完成后才能更新我想要的标签。我想知道是否有一个简单的例子,任何人都可以提供给我的标签只在完成时更新,而不是在方法完成时。我知道你不能使用“@selector(animationDidStop:finished:context :)”因为苹果不喜欢它。任何人的帮助?拜托,谢谢!
答案 0 :(得分:1)
为什么不直接使用UIView动画块?
[UIView animateWithDuration:0.75 delay:0 options:0 animations:^{
theButton.transform = CGAffineTransformMakeRotation((720*M_PI)/180);
} completion:^{
theLabel.text = @"Whatever";
}];
如果您需要4.x之前的兼容性,请使用旧表单,使用UIView类方法+setAnimationDidStopSelector:
,如下所示:
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDidStopSelector:@selector(someMethodInWhichYouSetTheLabelText)];
theButton.transform = CGAffineTransformMakeRotation((720*M_PI)/180);
[UIView commitAnimations];
答案 1 :(得分:0)
我知道你不能用 “@selector(animationDidStop:完成:上下文:)”
实际上你可以,只是给它一个名字,这样它就不会与Apple内部方法冲突
关于您的问题:
委托
指定接收者 委托对象。
animationDidStop:已完成:
什么时候打电话 动画完成其活动 持续时间或从对象中删除 它附在。