怎样让动画演示完了之后再运行后面的代码?

UIView animateWithDuration:0.3 animations:^{

filterview.frame=CGRectMake(40, -60, 280, 60) ;

}];

view1.hidden=YES;

如上代码,本来我以为是动画的效果结束后才执行后面的hidden语句的,没想到是动画刚开始就已经执行了hidden,请问这个动画有什么finish之类的回调语句?

或者用其他的什么办法做?

我现在能想到就是在动画和hidden之间加一个NStimer,延时0.3,这样看上去就是动画结束了之后再hidden

有那个方法啊。放到一个block中。

跟你一样的问题,你是在模拟器上运行的还是在真机上运行的?

真机,模拟器都一样

是吗?我没有真机运行,还希望真机上不这样呢,最后的希望没了

[UIView animateWithDuration:0.3

animations:^{

filterview.frame=CGRectMake(40, -60, 280, 60);

}

completion:^(BOOL finished) {

view1.hidden=YES;

}];

谢谢,已经解决了!

草拟打野