2014-03-19 45 views
1

我有一个问题。我正在使用动画块,但第二个动画与第一个动画同时动画。请帮我的动画不工作ios

这是我的代码。

[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]; 
        } 
       }] 

在此先感谢..

+0

你为什么要使用混合动画样式?第二个也使用块动画。 – rmaddy

+0

另外,你在哪里更改'finished'布尔值? – Raptor

+0

@rmaddy,请给我代码,因为我仍然使用动画块混淆。谢谢。 – user3300758

回答

2

曼迪告诉你该怎么做。嵌套块的语法可以是很难搞清楚,所以骗:

[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); 
    } 
    ]; 
} 
+0

嗨,它没有工作。 – user3300758

+2

“它没有工作”可能是您可以描述问题的最不具信息性的方式。如何处理一些细节? –

+0

我在第一个动画和第二个动画中添加了NSLog。在我运行程序后,两个NSLog同时显示。 2014-03-19 10:40:07.845 MedsRUs [4485:70b]第一个动画 2014-03-19 10:40:07.846 MedsRUs [4485:70b]第二个动画 – user3300758

0

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