在 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 给你回电话。)