segueing到不同的视图控制器后动画停止

时间:2015-04-25 17:21:42

标签: ios swift uiviewcontroller caanimation

我的应用中有一个动画,基本上只是让UIButton增长和缩小,以便让用户明白他们应该点按。

问题在于,当视图第一次出现时它工作正常,但如果我转到另一个视图控制器(带有segue)然后返回(没有任何反应),它就不起作用。

这是我的代码:

override func viewWillAppear(animated: Bool) {
    expandAnimation()
}

func expandAnimation() {
    var animation = CABasicAnimation(keyPath: "transform.scale")
    animation.toValue = NSNumber(float: 0.9)
    animation.duration = 1
    animation.repeatCount = 100
    animation.autoreverses = true
    animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
    appDevButton.layer.addAnimation(animation, forKey: nil)
}

我确定这是一个简单的修复,但我在网上找不到任何信息。

2 个答案:

答案 0 :(得分:4)

离开视图时从按钮中删除动画

    override func viewDidDisappear(animated: Bool) {
        super.viewDidDisappear(animated)
        appDevButton.layer.removeAllAnimations()
    }

答案 1 :(得分:1)

尝试解决方案:

    // Allows the animation to appear on View Controller
    override func viewWillAppear(_ animated: Bool) {
        super.viewDidAppear(true)

        // Function call
        expandAnimation()
    }

    // Allows the animation to disappear from View Controller 
    override func viewDidDisappear(_ animated: Bool) {
        super.viewDidDisappear(true)

        // Function call
        expandAnimation()
    }