【发布时间】:2015-08-23 22:49:06
【问题描述】:
我在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,它可以正常工作并重复动画。这很有趣,因为如果它没有隐藏,它应该覆盖视图中的其他交互式内容,但事实并非如此。其他内容在模拟器中完全可以访问。 UIImageView image 绝对是 Storyboard 的顶层。
【问题讨论】:
-
难道不是用
alpha或0来覆盖其他交互内容吗?
标签: swift animation animatewithduration