Подкласс UIButton меняет цвет заголовка без setTitleColor (_, для состояния :) [Swift] - PullRequest
1 голос
/ 27 февраля 2020

Как изменить цвет текста UIButton TitleLabel в подклассе без с помощью func setTitleColor(_ color: UIColor?, for state: UIControl.State)? self.titleLabel!.textColor = .yellow не работает (на основе этот ответ ).


Что я пытаюсь сделать:

В настоящее время я Я работаю в подклассе UIButton, я работаю с поведением различных setSomethingColor(_ color: UIColor?, for state: UIControl.State) с переопределениями и didSet над isSelected, isHighlighted ... Устанавливаю свойства цвета различных элементов самостоятельно .

Я могу изменить цвет фона self.backgroundColor = .red, цвет оттенка self.tintColor = .green, но Я не могу изменить цвет текста с помощью self.titleLabel!.textColor = .yellow, что, кажется, является правильным способом установки цвет для UILabel ...

Единственный возможный способ сделать это с func setTitleColor(_ color: UIColor?, for state: UIControl.State)? Я что-то упустил?

Спасибо за вашу помощь.

1 Ответ

2 голосов
/ 27 февраля 2020

Согласно Apple Docs

Не используйте объект метки для установки цвета текста или цвета тени. Вместо этого используйте методы setTitleColor (: for :) и setTitleShadowColor (: for :) этого класса, чтобы внести эти изменения. Чтобы установить фактический текст метки, используйте setTitle (_: for :) (button.titleLabel.text не позволяет вам установить текст). Свойство titleLabel возвращает значение, даже если кнопка еще не отображалась. Значение свойства ноль для системных кнопок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...