Чтобы включить анимацию, я бы хотел обновить метод heartBit
, как показано ниже,
func heartBit() {
isAnimRunning = !isAnimRunning
if isAnimRunning == false { // Run animation if no animation
pulseAnimation.duration = 0.8
pulseAnimation.toValue = NSNumber(value: 2.0)
pulseAnimation.repeatCount = HUGE
pulseAnimation.isCumulative = true
pulseAnimation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
pulseAnimation.autoreverses = true
pulseAnimation.repeatCount = Float.greatestFiniteMagnitude
pulseAnimation.fromValue = NSNumber(value: 0.0)
self.view.layer.add(pulseAnimation, forKey: "transform.scale")
} else { // Remove animation if already running
self.view.layer.removeAllAnimations()
}
}
И теперь вы можете вызывать этот метод на button click
так же, как вы это делали в viewDidLoad
, и он переключит анимацию.
@IBAction func heartBtn(_ sender: Any) {
heartBit()
}
Примечание: Убедитесь, что ваш метод heartBtn
подключен и вызывается при нажатии кнопки. По моим наблюдениям, трудно нажать кнопку, когда весь вид анимируется.