我很少有子视图响应相同的动画。我想在动画完成后删除子视图(animationDidStop)。是一种检测 animationDidStop 中动画子视图的方法吗?
在这种特殊情况下:
if ([animationID isEqualToString:@"myAnimation"])
view.removeSubView:myView;
如果是正确的子视图,你怎么看?,因为我之前说过一些子视图响应相同的动画。
我很少有子视图响应相同的动画。我想在动画完成后删除子视图(animationDidStop)。是一种检测 animationDidStop 中动画子视图的方法吗?
在这种特殊情况下:
if ([animationID isEqualToString:@"myAnimation"])
view.removeSubView:myView;
如果是正确的子视图,你怎么看?,因为我之前说过一些子视图响应相同的动画。
您可以为动画命名(每个视图都需要一个唯一的动画名称):
[UIView beginAnimations:@"myAnimation" context:nil];
myView.alpha = 1.0f; // or whatever property you're animating...
[UIView commitAnimations];
然后在
- (void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(id)context
{
if ([finished boolValue])
{
if ([animationID isEqualToString:@"myAnimation"])
[myView removeFromSuperview];
}
}
或者更好的是,使用 iOS4+ 块动画方法及其完成处理程序,您将能够在完成处理程序中更清晰地引用正在动画的视图。例如
[UIView animateWithDuration:0.4f animations:^
{
myView.alpha=1.0f;
}
completion:^(BOOL finished)
{
[myView removeFromSuperview];
}];