Swift - кнопка UIB не подсвечивается при нажатии - PullRequest
2 голосов
/ 20 января 2020

У меня проблема при добавлении UIButton программно. Там нет "тап-анимации".

Кто-нибудь знает, почему это происходит и как это исправить? Я не смог найти ничего на этой топи c ...

let weiterButton: UIButton = {
    let v = UIButton()
    v.translatesAutoresizingMaskIntoConstraints = false
    v.setTitle("WEITER", for: .normal)
    v.titleLabel?.font = UIFont(name: "AvenirNext-Bold", size: 20)
    v.titleLabel?.textColor = .white
    v.backgroundColor = UIColor(red: 75/255, green: 75/255, blue: 75/255, alpha: 1)
    v.addTarget(self, action: #selector(weiterButtonTapped), for: .touchUpInside)
    return v
}()

Анимация, которую я хотел бы иметь:

Анимация

Ответы [ 2 ]

2 голосов
/ 20 января 2020

Вы должны установить lazy var вместо let, потому что вы хотите выйти из своей переменной (кнопка). Кроме того, вы должны установить UIButton(type: .system), потому что вы говорите, что у кнопки должен быть какой-то стиль.

lazy var weiterButton: UIButton = {
    let v = UIButton(type: .system)
    v.translatesAutoresizingMaskIntoConstraints = false
    v.setTitle("WEITER", for: .normal)
    v.titleLabel?.font = UIFont(name: "AvenirNext-Bold", size: 20)
    v.setTitleColor(.white, for: .normal)
    // If you want a different color when it is pressed
    v.setBackgroundImage(UIImage(named: "Hlighlighted image"), for: .highlighted)
    v.setBackgroundImage(UIImage(named: "Your image"), for: .normal)
    v.addTarget(self, action: #selector(weiterButtonTapped), for: .touchUpInside)
    return v
}()
0 голосов
/ 21 января 2020

Вам необходимо добавить тип UIButtont в систему, как показано ниже.

 let v = UIButton(type: .system)

Вы сказали "когда я добавлю это, цвет заголовка моей кнопки будет синим". в ваших комментариях.

Поскольку ваш тип UIButton меняется на system, а цвет заголовка UIButton по умолчанию синий.

Поэтому вам также необходимо изменить setTitleColor следующим образом:

 v.setTitleColor(UIColor(red: ../255, green: ../255, blue: ../255, alpha: 1), for: .normal)

ПРИМЕЧАНИЕ:

Ваша заслуженная анимация является функцией системной кнопки. Если вы не указываете тип кнопки, например

let v = UIButton()

Вы должны добавить свою заслуженную анимацию вручную .

...