在 Swift 中使用完成处理程序动画图像
Animate Images with completion handler in Swift
动画正在运行,但完成处理程序似乎无法识别动画的结束。我想在动画完成后调用 println。我怎样才能最好地做到这一点?
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)
}
编辑:澄清问题。
completion handler does not seem to be recognizing the end of the animation
UIImageView 图像动画 没有 "completion handler"。比这简单多了。
如果您需要完成处理程序,请使用某种确实具有完成处理程序的动画。
(在你的情况下,我不明白你为什么 需要 一个完成处理程序。你知道这个动画什么时候结束:从现在开始 1 秒。所以只需设置一个NSTimer 给你回电话。)
动画正在运行,但完成处理程序似乎无法识别动画的结束。我想在动画完成后调用 println。我怎样才能最好地做到这一点?
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)
}
编辑:澄清问题。
completion handler does not seem to be recognizing the end of the animation
UIImageView 图像动画 没有 "completion handler"。比这简单多了。
如果您需要完成处理程序,请使用某种确实具有完成处理程序的动画。
(在你的情况下,我不明白你为什么 需要 一个完成处理程序。你知道这个动画什么时候结束:从现在开始 1 秒。所以只需设置一个NSTimer 给你回电话。)