Установка свойства titleLabel
s text
таким образом не имеет никакого эффекта. Вместо этого вызовите -setTitle:forState:
на кнопке:
[editButton setTitle:@"Edit" forState:UIControlStateNormal]
Причина этого в том, что кнопка может иметь разные заголовки для разных состояний (например, UIControlStateDisabled
, UIControlStateHighlighted
). Установка свойства для элемента управления UIControlStateNormal
будет применяться ко всем состояниям, если вы не укажете другие явно.
Согласно документации для UIButton
:
Этот класс предоставляет методы для настройки заголовка, изображения и других свойств внешнего вида кнопки. Используя эти методы доступа, вы можете указать различный внешний вид для каждого состояния кнопки.
Вы можете настроить цвет метки и цвет тени в зависимости от состояния. См. -setTitleColor:forState
и -setTitleShadowColor:forState
соответственно. Остальные свойства titleLabel
, такие как textAlignment
и font
, должны работать так, как вы их установили сейчас, и должны применяться ко всем состояниям управления.
В частности, см. Документацию для UIButton
s titleLabel
свойство: https://developer.apple.com/documentation/uikit/uibutton/1623992-titlelabel
titleLabel
сам по себе только для чтения, но это не значит, что вы не можете изменять значения его собственных свойств, таких как шрифт, режим разрыва строки и т. Д.