Как изменить шрифт UIButton с Swift
Я пытаюсь изменить шрифт UIButton с помощью Swift...
myButton.font = UIFont(name: "...", 10)
.font
устарел, и я не уверен, как изменить шрифт в противном случае.
какие предложения?
14 ответов
использовать titleLabel
вместо. The font
свойства deperecated в iOS 3.0. Он также не работает в Objective-C. titleLabel
метка используется для отображения заголовка на UIButton
.
myButton.titleLabel?.font = UIFont(name: YourfontName, size: 20)
однако при настройке текста заголовка вы должны использовать только setTitle:forControlState:
. Не используйте titleLabel
установить любой текст для заголовка.
на Swift 3.0:
button.titleLabel?.font = UIFont.boldSystemFont(ofSize: 16)
где "boldSystemFont" и " 16 " можно заменить пользовательским шрифтом и размером.
С документация:
шрифт, используемый для отображения текста на кнопке. (устарел в iOS 3.0. Используйте
font
свойстваtitleLabel
.)
вам не нужно заставлять разворачивать titleLabel, чтобы установить его.
myButton.titleLabel?.font = UIFont(name: YourfontName, size: 20)
поскольку вы не используете titleLabel здесь, вы можете просто использовать его, и если он равен нулю, это будет просто no-op.
Я также добавлю, как говорят другие люди, свойство шрифта устарело и обязательно используйте setTitle:forControlState:
при создании текста заголовка.
Если у вас возникли проблемы размер шрифта (шрифт не реагирует на изменения размера)...
@codester имеет правильный код:
myButton.titleLabel!.font = UIFont(name: YourfontName, size: 20)
однако, мой размер шрифта не меняется. Оказывается, я прошу шрифт, которого не было ("HelveticaNeue-Regular"). Это не вызывало сбоя, но, казалось, просто игнорировало это утверждение шрифта из-за него. Как только я изменил шрифт на что-то, что существует, изменения на "size: x" сделали рендеринг.
вы должны пройти через titleLabel
собственность.
button.titleLabel.font
на font
свойство устарело с iOS 3.0.
посмотреть здесь.
вы должны установить шрифт titleLabel кнопки вместо этого.
myButton.titleLabel!.font = UIFont(name: "...", 10)
этот способ не работает сейчас:
btn.titleLabel?.font = UIFont(name: "Helvetica", size:12)
это работает:
btn.titleLabel?.font = UIFont.init(name: "Helvetica", size:12)
пример: button.titleLabel?.font = UIFont(name: "HelveticaNeue-Bold", size: 12)
- если вы хотите использовать шрифт defaul из собственной семьи, используйте, например:"HelveticaNeue"
- если вы хотите указать семейный шрифт, используйте, например: "HelveticaNeue-Bold"
Если вы устанавливаете AttributedString в UIButton, то вы можете сделать следующее.
let attributedText = NSAttributedString(string: "Hello", attributes: [NSAttributedStringKey.font: UIFont(name: "Calibri", size: 19)])
okayButton.setAttributedTitle(attributedText, for: .normal)
эта работа для меня, спасибо. Я хочу изменить размер текста только не изменить имя шрифта.
var fontSizeButtonBig:Int = 30
btnMenu9.titleLabel?.font = .systemFont(ofSize: CGFloat (fontSizeButtonBig))
Если вам нужно изменить только размер ( Swift 4.0):
button.titleLabel?.font = button.titleLabel?.font.withSize(12)