2013-12-09 51 views
0

我正在使用UIView animateWithDuration:delay:options:animations:completion:方法,但完成方法永遠不會被調用。這裏是我的代碼:UIViewAnimateWithDuration完成從未調用

[UIView animateWithDuration:1 delay:0 options:UIViewAnimationOptionAllowUserInteraction animations:^ 
      { 
       //random lines of code 

      }completion:^(BOOL finished){ 
       if (finished) 
       { 
        NSLog(@"FINISHED"); 
       } 
      }]; 

編輯:當我行註釋掉我animations:它被稱爲??? !!!

這些都是行:

CGFloat objectY = object.frame.origin.y; 
objectY += speed; 
object.frame = CGRectMake(object.frame.origin.x, objectY, 75, 75); 
+0

如果你評論這些隨機線出來了嗎?或者你是否嘗試在完成塊中添加else子句? –

+0

@MertBuran是的。爲什麼會發生? –

+0

什麼是隨機線? – Wain

回答

1

我正在猜測 - 要動畫連續手勢的移動? 如果是,則由於用戶交互,動畫永不結束。

只是更新框架,沒有UIView動畫。應該工作得很好。

+0

我想你在這裏說的是,刪除'UIViewAnimationOptionAllowUserInteraction'將允許完成處理 – bachonk

+0

也許。它更少的代碼來告訴實際發生的事情。你所做的UIViewAnimation很好。必須是干擾的東西。從哪裏獲得這個動畫的速度或頻率如何?在動畫中設置幀的原點是關於移動距離,但不是速度。速度是距離除以時間,但是當你選擇浮點的名稱時,你有一些想法。就像我之前說過的,我猜測:) –