我希望一个物体消失然后隐藏它。以下隐藏它,但我没有看到褪色,大概是因为它在动画仍在完成时隐藏了它。有关如何让代码等到动画完成的任何建议吗?
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
[adviceBorder setAlpha:0];
[UIView commitAnimations];
adviceBorder.hidden=YES;
答案 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;
});