Я пишу приложение для камеры и испытываю проблемы с отображением квадрата фокуса, когда пользователь нажимает на экран.
Мой код (быстро):
self.focusView.center = sender.locationInView(self.cameraWrapper)
self.focusView.transform = CGAffineTransformMakeScale(2, 2)
self.focusView.hidden = false
UIView.animateWithDuration(0.5, animations: { [unowned self] () -> Void in
self.focusView.transform = CGAffineTransformIdentity
}, completion: { (finished) -> Void in
UIView.animateWithDuration(0.5, delay: 1.0, options: nil, animations: { () -> Void in
self.focusView.alpha = 0.0
}, completion: { (finished) -> Void in
self.focusView.hidden = true
self.focusView.alpha = 1.0
})
})
Однако, если использование последовательно нажимает экран, когда предыдущая анимация не заканчивается, старая и новая анимация будет смешиваться, и фокус будет вести себя странно, например, он исчезнет очень быстро.
Может ли кто-нибудь сказать мне, как отменить предыдущую анимацию, особенно предыдущий блок завершения?