Я пытаюсь управлять анимацией касанием экрана
когда я касаюсь экрана, альфа вида становится равной 0
но если коснуться снова, пока альфа меняется на 0
затем альфа снова становится 1 (прерывание анимации, которое делает альфа-значение 0)
поэтому я пишу
class MainViewController: UIViewController {
var showAnimation:UIViewPropertyAnimator!
var hideAnimation:UIViewPropertyAnimator!
var isHiding:Bool = false
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = .blue
showAnimation = UIViewPropertyAnimator(duration: 2, curve: .easeInOut, animations: {
self.view.alpha = 1
})
hideAnimation = UIViewPropertyAnimator(duration: 2, curve: .easeInOut, animations: {
self.view.alpha = 0
})
showAnimation.isUserInteractionEnabled = true
showAnimation.isInterruptible = true
hideAnimation.isUserInteractionEnabled = true
hideAnimation.isInterruptible = true
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
isHiding = !isHiding
if self.isHiding {
self.hideAnimation.startAnimation()
self.showAnimation.stopAnimation(true)
}else{
self.hideAnimation.stopAnimation(true)
self.showAnimation.startAnimation()
}
}
}
но touchesBegan вызывается только после завершения блоков анимации
Как я могу решить эту проблему
UITapGestureRecognizer
вместо touchesBegan? - person Dejan Skledar   schedule 11.05.2018