2015-05-29 91 views
0

動畫正在工作,但完成處理程序似乎無法識別動畫的結尾。我想在動畫完成後調用println。我如何最好地實現這一目標?使用Swift中的完成處理程序動畫圖像

var vaultClosedImage = UIImageView(image: UIImage(named: "vaultClosedAlpha.png")) 
override func animationDidStop(anim: CAAnimation!, finished flag: Bool) { 
    if flag { 
     println("here I am") 
    } 
} 

override func viewDidLoad() { 
    super.viewDidLoad() 
    let vaultImages:[AnyObject] = [UIImage(named: "vaultOpening0001.png")!, ...] 
    vaultClosedImage.animationImages = vaultImages 
    vaultClosedImage.animationRepeatCount = 1 
    vaultClosedImage.animationDuration = 1 

    vaultClosedImage.frame = UIScreen.mainScreen().bounds 
    vaultClosedImage.contentMode = UIViewContentMode.ScaleAspectToFill 
    self.view.addSubview(vaultClosedImage) 
} 

編輯:澄清問題。

+0

您是否將「NSAnimationDelegate」的委託設置爲您的類? – Icaro

回答

0

完成處理程序似乎並沒有被認識到動畫

的UIImageView圖像動畫做的到底要不要一個「完成處理」。它比這更簡單。

如果您想要完成處理程序,請使用具有完成處理程序的某種動畫。

(在你的情況,我不明白爲什麼你甚至需要完成處理你知道,當這個動畫將結束:1。二現在這樣只是設置一個NSTimer給你打電話吧)

+0

而我的回答已經回答了。使用不同類型的動畫。 – matt

+0

謝謝你,馬特,你對定時器提出了一個非常明顯的觀點。 – lando2319