2014-03-19 99 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的。如果你實際上沒有改變動畫中的任何內容,我認爲它會被跳過。