我在UIAnimation块中放了一行代码。下一行是在动画块之后。我希望第二行只在第一个动画块的时间间隔之后执行。
例如: -
[UIView beginAnimations:@"View Flip" context:nil];
[UIView setAnimationDuration:0.5];
//First line comes here
[self.view addSubview:subView];
[UIView commitAnimations];
然后第二行
[subView2 removeFromSuperView];
我希望第二行仅在动画动作的0.5秒间隔后执行。有可能这样做吗?
答案 0 :(得分:2)
您可以设置动画的委托,并在其方法中删除子视图:
...
[UIView beginAnimations:@"View Flip" context:nil];
[UIView setAnimationDuration:0.5];
[UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];
[UIView setAnimationDelegate:self];
//First line comes here
[self.view addSubview:subView];
[UIView commitAnimations];
...
然后在委托的动画中,停止处理程序删除了你的第二个子视图:
- (void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context{
if ([finished boolValue])
[subView2 removeFromSuperview];
}