【发布时间】:2011-03-11 03:10:53
【问题描述】:
我可以设置一个在动画完成后调用的函数吗?我想淡化UIView,然后将其从superView 中删除。
【问题讨论】:
标签: ios objective-c uiview iphone-sdk-3.0
我可以设置一个在动画完成后调用的函数吗?我想淡化UIView,然后将其从superView 中删除。
【问题讨论】:
标签: ios objective-c uiview iphone-sdk-3.0
iOS4 中引入了动画块。 Apple 建议您使用这些,新方法主要要求替换回调的完成块。例如:
[UIView animateWithDuration:0.5f
delay:0.0f
options:UIViewAnimationCurveEaseInOut
animations:^{
[myView setAlpha:0.0f];
}
completion:^(BOOL finished) {
[myView removeFromSuperview];
}];
【讨论】:
是的,这很简单:
当你配置你的动画时
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(myAnimationStopped:finished:context:)];
并定义您的方法,例如:
-(void)myAnimationStopped:(NSString *)animationID
finished:(NSNumber *)finished
context:(void *)context {
// fancy code here
}
当然不必是self 和那个方法。
【讨论】: