在Swift中使用完成处理程序动画图像

时间:2015-05-29 03:54:28

标签: swift animation uikit

动画正在运行,但是完成处理程序似乎没有识别动画的结束。我想在动画完成后调用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)
}

编辑:澄清问题。

1 个答案:

答案 0 :(得分:0)

  

完成处理程序似乎没有识别动画的结束

UIImageView图像动画没有“完成处理程序”。它比那更简单。

如果你想要一个完成处理程序,请使用某种 具有完成处理程序的动画。

(在你的情况下,我不明白为什么你甚至需要一个完成处理程序。你知道这个动画什么时候结束:从现在开始1秒。所以只需设置一个NSTimer给你回电话然后。)