У меня есть UIButton в моем приложении с изображением.анимация UIButton на потоке
Я хочу, чтобы иметь возможность вызвать функцию, которая вспыхивает на эту кнопку несколько раз (скажем, 5 раз)
Я также хочу, чтобы быть в состоянии остановить это мигание во время его работы
Ниже важная часть кода:
var flashesRemaining: Int = 5;
var isFlashing: Bool = false
@IBOutlet weak var btnMM: UIButton!
// Flash the button
@IBAction func flashMemoryButton(sender: AnyObject) {
print(self.flashesRemaining)
if self.flashesRemaining == 0 {
return
}
if !isFlashing {
self.btnMM.alpha = 1.0
UIView.animate(withDuration: 0.5, delay: 0.0, options: [.curveEaseInOut, .repeat, .autoreverse, .allowUserInteraction], animations: {() -> Void in
self.btnMM.alpha = 0.0100000003
}, completion: {(finished: Bool) -> Void in })
isFlashing = true
}
else {
UIView.animate(withDuration: 0.1, delay: 0.0, options: [.curveEaseInOut, .beginFromCurrentState], animations: {() -> Void in
self.btnMM.alpha = 1.0
}, completion: {(finished: Bool) -> Void in })
}
self.flashesRemaining = self.flashesRemaining - 1
}
Так что я хочу, чтобы иметь возможность для вызова функции выше, как это, чтобы начать мигать:
self.flashesRemaining = 5
self.flashMemoryButton(sender: self.btnMM)
, а затем, если я хочу, чтобы отключить мигание, я должен просто позвонить:
self.flashesRemaining = 0
Однако приведенный выше код не работает вообще , После того, как я называю
self.flashMemoryButton(sender: self.btnMM)
я получаю распечатку , а затем кнопку продолжает мигать навсегда. Что мне здесь не хватает?
Кстати, магическое число 0.0100 ... 3 является минимально допустимой альфа для UIButton, поддерживая интерактивность пользователя.