I have an animation in my app that basically just makes a UIButton
grow and shrink to make it obvious to the user that they should tap.
The problem is that while it works fine when the view first appears, it doesn't work if I go to a different view controller (with a segue) and then return (nothing happens).
Here is my code:
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)
}
I'm sure it's a simple fix, but I couldn't find any info online.
Remove the animation from the button when you leave the view,
override func viewDidDisappear(animated: Bool) {
super.viewDidDisappear(animated)
appDevButton.layer.removeAllAnimations()
}
Try Solution:
// 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()
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.