2012-08-27 102 views
0

我有一個簡單的動畫,將視圖從一個位置移動到另一個位置。動畫功能,除了正常的事實,是不遵循持續時間在方法聲明中設置...UIView animateWithDuration不遵守持續時間

[UIView beginAnimations:@"listAnimationIn" context:nil]; 
[UIView animateWithDuration:1.0 
         delay:1.0 
        options:UIViewAnimationCurveLinear 
       animations:^{ 
        lvc.view.frame = CGRectMake(0, 0, 320, 480); 
       } 
       completion:nil]; 
[UIView commitAnimations]; 

延遲工作,但動畫運行FAST無論我把什麼價值爲持續時間(我試過從0.5到2000的值)。我也嘗試了幾個UIViewAnimationCurve選項,似乎沒有任何工作。

我錯過了什麼嗎?

回答

3

您不需要-beginAnimations:context:-commitAnimations消息。這是做這件事的老方法,你不應該混淆。只需撥打-animateWithDuration:delay:options:animations:completion:方法即可。此外,如果您添加完成塊,則會傳遞一個布爾變量來告訴您動畫是否提前終止或運行完成。如果動畫速度太慢,或者您有相同的視圖層次結構(您確實有舊的樣式開始/提交調用)開始競爭動畫,則會發生這種情況。

+0

賈森,我的男人!搞定了。謝謝一堆! – CoderMarkus