我能否设置一个函数,在我的动画完成后自动调用它?我希望淡出一个UIView
,然后将其从superView
中移除。
我能否设置一个函数,在我的动画完成后自动调用它?我希望淡出一个UIView
,然后将其从superView
中移除。
iOS4中引入了动画块。苹果公司建议使用它们,而新方法大多要求使用完成块来替换回调函数。例如:
[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
。