我在switch
聲明中運行這段動畫,並執行它應該做的事情。定時器內每20秒成功調用一次動畫。但是,動畫不會在第一時間發生。在我的代碼下面,你會看到println
陳述,我曾嘗試突出問題。每個println
語句都會打印,但不會發生動畫。我錯過了什麼?animateWithDuration動畫曾經但不是兩次
func popAnimation(indexNumber: Int) {
let image = self.overlayImageView[indexNumber]
image.hidden = false
image.alpha = 0.0
UIView.animateWithDuration(0.75, delay: 0.0, usingSpringWithDamping: 0.5, initialSpringVelocity: 1.0, options: nil, animations: {() -> Void in
println("animation ran")
println(image.alpha)
image.image = UIImage(named: "lowCountOverlay")
image.alpha = 1.0
}, completion: { (Bool) -> Void in
UIView.animateWithDuration(0.75, delay: 0.0, usingSpringWithDamping: 0.5, initialSpringVelocity: 1.0, options: nil, animations: {() -> Void in
println("animation 2 ran")
println(image.alpha)
image.alpha = 0.0
}, completion: { (Bool) -> Void in
println("animation 3 ran")
image.hidden = true
})
})
}
更新:如果我從第二塊完成刪除image.hidden
它工作正常,並反覆動畫。這很有趣,因爲如果它沒有隱藏,它應該覆蓋視圖中的其他交互內容,但事實並非如此。其他內容完全可以在模擬器中訪問。 UIImageView image
絕對是Storyboard中的頂層。
是不是*用'alpha'的'0'覆蓋了其他交互式內容? – dangnabit