2012-10-02 56 views
0

如果滿足某些條件,我有以下代碼來爲徽章設置動畫。它工作正常,除非它被稱爲後立即視圖控制器之後查找重新加載(在另一個VC)返回到ViewController後動畫不起作用

if ((-MY CONDITION HERE-) { 
     NSLog(@"am going to animate!"); 

     [UIView animateWithDuration:1.0 
          delay:0 
          options:(UIViewAnimationOptionAutoreverse|UIViewAnimationOptionRepeat) 
         animations:^{ 
            selectedInfoButton.alpha = 0.4; 
           } 
         completion:nil]; 
    } 

我可以看到,被重新裝入VC時,調用該方法,但動畫在與查找被調用時處於相同狀態時被「凍結」。可能會出現什麼問題?

+0

嘗試延遲0.1 – vishy

+0

在爲代碼添加無限延遲之前,通常可以找到正確解決問題的方法。 – occulus

+0

InRainbows,上面的代碼在哪裏出現?例如,它在viewDidAppear中嗎?或者viewDidLoad? – occulus

回答

1

可能性:

  • 一次工作在viewController

    代碼被稱爲viewDidLoad 方法。然後將其添加在viewWillAppear

  • 檢查條件滿足時,(也就是代碼命中塊)第二次ViewController收割機
+0

通過在ViewDidAppear中重複代碼調用,動畫現在可以再次運行。它不與viewWillAppear !!在帶有斷點的代碼之後,我可以看到動畫在viewDidLoad期間被調用,並且在動畫進入VC之前進入VC。據推測,segue過渡殺死了動畫,因此在viewDidAppear獲得它的工作後再次開始動畫。非常感謝你的回覆。 – InRainbows