i have animation that starts after view appeares and i need to stop it by tap, but animation doesnt stop
code:
Property
private var isAnimating = true
Animation (every 0.1 seconds shows new image)
func animateImage() {
UIImageView.transition(with: self.imageView, duration: 0.1, options: .transitionCrossDissolve) {
self.imageView.setImage(imageUrl: self.imagesArray[self.nextImage])
} completion: { _ [weak self] in
if self.nextImage != self.imagesCount - 1 {
self.nextImage += 1
} else {
self.nextImage = 0
}
self.animateImage()
}
}
UITapGestureRecognizer
let tap = UITapGestureRecognizer(target: self, action: #selector(tapOnImage))
self.addGestureRecognizer(tap)
Action for tap
@objc func tapOnImage(sender: UITapGestureRecognizer) {
if isAnimating {
imageView.stopAnimating()
} else {
imageView.startAnimating()
}
isAnimating.toggle()
}