请帮助我的动画不工作ios

时间:2014-03-19 02:14:31

标签: ios objective-c animation uiview

我有一个问题。我正在使用动画块,但第二个动画同时动画第一个动画。

这是我的代码。

[UIView animateWithDuration:2.0f
                      delay:0.0f
                    options:UIViewAnimationOptionCurveEaseOut
                 animations:^{
                     self.scrollView.frame = CGRectMake(63, 59, 437, 289);
                 }
                 completion:^(BOOL finished){
                     if (finished) {
                         [UIScrollView beginAnimations:nil context:NULL];
                         [UIScrollView setAnimationDuration:0.6];
                         self.scrollView.frame = CGRectMake(63, 2, 437, 289);
                         [UIScrollView commitAnimations];
                     }
                }]

提前致谢..

2 个答案:

答案 0 :(得分:2)

Maddy告诉你该怎么做。嵌套的块语法很难弄清楚,所以作弊:

[UIView animateWithDuration:2.0f
                      delay:0.0f
                    options:UIViewAnimationOptionCurveEaseOut
                 animations:^{
                     self.scrollView.frame = CGRectMake(63, 59, 437, 289);
                 }
                 completion:^(BOOL finished){
                     if (finished) 
                     {
                         [self secondAnimation];
                     }
                }]


- (void) secondAnimation:
{
  [UIView animateWithDuration: 0.6
    animations: ^
    {
      self.scrollView.frame = CGRectMake(63, 2, 437, 289);
    }
  ];
}

答案 1 :(得分:0)

添加在第一个动画之前显示self.scrollView.frame的NSLog。如果你实际上没有改变动画中的任何内容,我认为它会被跳过。