Заставьте текст метки мигать или мигать при нажатии отдельной кнопки в Swift 3

Дано приложение с текстовой меткой на экране и кнопкой. При каждом нажатии кнопки текст меняется. Я хочу иметь возможность нажать кнопку, и текст будет «мигать» при изменении текста, чтобы сделать изменение текста более очевидным для пользователя.

Учитывая следующие переменные:

@IBOutlet weak var text: UILabel!
@IBAction func buttons(_ sender: UIButton) {}

Я пробовал SKAction, fadein/fadeout, но все туториалы/помощь находятся в старых версиях Swift и у меня не работают.


person Christian DiClemente    schedule 24.05.2017    source источник


Ответы (2)


Swift 3.0
Один из способов мигания UIView достигается с помощью UIKit анимации.

@IBOutlet var label: UILabel!

var x = 0
let text = ["Vanakkam","Hello","Hi","Hola","Ni Hao","Oi","Namastae"]

@IBAction func buttonAction(_ sender: UIButton) {

    UIView.animate(withDuration: 0.2, animations: { 
        self.label.alpha = 0.0
        }) { (bool) in
            self.label.alpha = 1.0
            self.label.text = text[self.x]
            if self.x < text.count{
                self.x = self.x+1
            }else{
                self.x = 0
            }
    }
}

ВЫВОД:- введите здесь описание изображения

person Rajamohan S    schedule 24.05.2017

Как я уже писал здесь: https://stackoverflow.com/a/46493987/1836369

Вы можете расширить класс UIView следующим образом:

 extension UIView{
     func blink() {
         self.alpha = 0.2
         UIView.animate(withDuration: 1, delay: 0.0, options: [.curveLinear, .repeat, .autoreverse], animations: {self.alpha = 1.0}, completion: nil)
     }
}

Таким образом, вы можете просто позвонить

text.blink() 

чтобы ваш ярлык мигал

person Erik Peruzzi    schedule 30.07.2020