2012-06-06 180 views
2

爲什麼下面的代碼日誌「完成」只要它被觸發?動畫塊 - 完成將立即觸發

[UIView animateWithDuration:0.3 
       animations:^{ 
         NSLog(@"Start"); 
       } 
       completion:^(BOOL finished){ 
        NSLog(@"done"); 
       } 
]; 
+0

可能是因爲動畫塊中沒有動畫。 – scord

回答

8

因爲你沒有真正動畫做(的NSLog不能動畫)。您需要動畫化對象,否則將立即調用完成塊。如果沒有任何動畫,0.3秒的持續時間將被忽略。

+0

好吧,我正在改變一些事情,併發生同樣的事情。 – Morkrom

3

因爲你不是動畫任何東西。如果您更改動畫塊中某個UIView的值,您將在0.3秒延遲後正確地看到「完成」輸出。

我使用5秒的延遲測試了您的代碼,只添加了一些動畫來確認。

+0

好的,如果你正在改變視圖的價值並且...會發生同樣的現象? – Morkrom