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

问题描述:

动画正在工作,但完成处理程序似乎无法识别动画的结尾。我想在动画完成后调用println。我如何最好地实现这一目标?使用Swift中的完成处理程序动画图像

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) 
} 

编辑:澄清问题。

+0

您是否将“NSAnimationDelegate”的委托设置为您的类? – Icaro

完成处理程序似乎并没有被认识到动画

的UIImageView图像动画做的到底要不要一个“完成处理”。它比这更简单。

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

(在你的情况,我不明白为什么你甚至需要完成处理你知道,当这个动画将结束:1。二现在这样只是设置一个NSTimer给你打电话吧)

+0

而我的回答已经回答了。使用不同类型的动画。 – matt

+0

谢谢你,马特,你对定时器提出了一个非常明显的观点。 – lando2319