在完成期间从超级视图中删除将其删除

时间:2012-03-01 23:44:11

标签: iphone objective-c

我有这段代码,例如:

[UIView animateWithDuration:0.3
                          delay:0
                        options:UIViewAnimationOptionCurveEaseOut
                     animations:^{
                         [self animateMenuOut:menu];
                     }completion:^(BOOL finished) {
                         [menu removeFromSuperview];
                     }];
然而,

不是动画,而是从视图中消失。删除[menu removeFromSuperview];行可以使其正常工作。

2 个答案:

答案 0 :(得分:0)

你的-animateMenuOut方法可能具有即发即弃的性质......一旦你的动画代码触发,它就会在后台线程中运行,你的代码执行将继续(完成)。据我所知,这是一个避免UI阻止的功能。

希望这有一些帮助。

约什

答案 1 :(得分:0)

此代码没有问题。 一些想法:

  1. animateMenuOut
  2. 中的问题
  3. 糟糕的重绘效果。低FPS&持续时间0.3秒=>你看不到动画。你试过增加持续时间吗?
  4. 启动动画后阻止主线程。