switch
我在一个运行并执行它应该做的事情的语句中有这段动画。动画在计时器内每 20 秒成功调用一次。但是,动画不是第一次发生,而是第一次发生。在下面的代码中,您将看到println
我用来尝试突出问题的语句。每个println
语句都会打印,但没有动画发生。我错过了什么?
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
从第二个完成块中删除它可以正常工作并重复动画。这很有趣,因为如果它没有被隐藏,它应该会覆盖视图中的其他交互式内容,但事实并非如此。其他内容在模拟器中完全可以访问。UIImageViewimage
绝对是 Storyboard 中的顶层。