Для Swift 3 + , опираясь на все великолепные ответы здесь, я получил несколько настроек, которые дали мне эффект плавного мигания, который автоматически прекращается после определенного количества циклов.
extension UIView {
func blink(duration: Double=0.5, repeatCount: Int=2) {
self.alpha = 0.0;
UIView.animate(withDuration: duration,
delay: 0.0,
options: [.curveEaseInOut, .autoreverse, .repeat],
animations: { [weak self] in
UIView.setAnimationRepeatCount(Float(repeatCount) + 0.5)
self?.alpha = 1.0
}
)
}
}