在隐藏对象之前等待动画完成

时间:2014-01-27 11:57:58

标签: ios animation uiview

我希望一个物体消失然后隐藏它。以下隐藏它,但我没有看到褪色,大概是因为它在动画仍在完成时隐藏了它。有关如何让代码等到动画完成的任何建议吗?

    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:0.5];

    [adviceBorder setAlpha:0];

    [UIView commitAnimations];

    adviceBorder.hidden=YES;

2 个答案:

答案 0 :(得分:2)

使用基于块的动画并在完成块中隐藏

[UIView animateWithDuration:0.5
                 animations:^{
                     adviceBorder.alpha = 0;
                 } completion:^(BOOL finished) {
                     adviceBorder.hidden = YES;
                 }];

答案 1 :(得分:0)

你可以使用阻止。

提交动画后,您可以将代码放在

下面
  double delayInSeconds = 0.5;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
    //code to be executed on the main queue after delay
   adviceBorder.hidden=YES;
});