我有一些嵌套的UIView动画,如下所示:
[UIView animateWithDuration:1.0 animations:^{
//Animation
}completion:^(BOOL success){
[UIView animateWithDuration:1.0 animations:^{
//More animation
}completion:^(BOOL success){
}];
}];
当线程上有其他活动时,内部动画偶尔会在开始之前有延迟。
我想知道是否有办法绕过这个,如果可以在这里使用GCD在后台线程上运行它?这是UI代码,所以也许不是。
答案 0 :(得分:1)
如果答案不是很明显,那么解决问题的方法就是:
[UIView
animateWithDuration:1.0
animations:^{
//Animation
}];
[UIView
animateWithDuration:1.0
delay:1.0
options:UIViewAnimationOptionCurveEaseInOut|UIViewAnimationOptionTransitionNone
animations:^{
//More animation
}
completion:^(BOOL success) {}];
即。只是在安排第一个动画的同时安排第二个动画,但是在你知道第一个动画完成之前告诉它不要开始。
一旦安排了事情,核心动画不会被主队列活动阻止,所以你可以在一秒钟之后忙碌,第二件事仍然会在第一件事完成后立即开始。