链式UIView动画,每个动画包含一个循环

时间:2017-03-29 12:52:25

标签: ios objective-c animation uiview

我想在循环中串联中执行多个animations。每个animation执行" UI动画"首先是"完成块"。我的问题是如何在循环中添加几个这样的animations系列,以便执行顺序如下:conditon->" UI动画1" - > "完成块1" - >条件 - > " UI动画2" - > "完成块2" - > ...-> condition->" UI动画n" - > "完成块n"。

 while(condition){
    [UIView animateWithDuration:0.3 animations:^{
        //UI animation
        CGRect frame = sourceView.frame;
        frame.origin = destPosition;
        view.frame = frame;
    } completion:^(BOOL finished) {
        //completion block
        self.currentBoard = destBoard;
    }];
 }
抱歉,我可能不会清楚地提出我的问题。我已经更新了上面的问题,添加了一会儿循环问题是我发现下一个条件测试是在上一个动画的完成块之前执行的

1 个答案:

答案 0 :(得分:0)

您需要在完成块N-1中启动UI动画N.

[UIView animateWithDuration:0.3 animations:^{
  // UI Animation 1
} completion:^(BOOL finished) {
  // Handle the completion of UI Animation 1

  // Start the next animation
  [UIView animateWithDuration:0.3 animations:^{
    // UI Animation 2
  } completion:^(BOOL finished) {
    // Completion block of animation 2
  }
}