Как изменить шрифт UIButton с Swift

Я пытаюсь изменить шрифт UIButton с помощью Swift...

myButton.font = UIFont(name: "...", 10)

Однако .font устарел, и я не уверен, как изменить шрифт в противном случае.

Любые предложения?

Ответ 1

titleLabel этого используйте titleLabel. Свойство font устарело в iOS 3.0. Это также не работает в Objective-C. titleLabel - это метка, используемая для отображения заголовка на UIButton.

myButton.titleLabel?.font =  UIFont(name: YourfontName, size: 20)

Однако при настройке текста заголовка вы должны использовать только setTitle:forControlState: Не используйте titleLabel чтобы установить любой текст для заголовка напрямую.

Ответ 2

Для Swift 3.0:

button.titleLabel?.font = UIFont.boldSystemFont(ofSize: 16)

где "boldSystemFont" и "16" могут быть заменены вашим пользовательским шрифтом и размером.

Ответ 3

Точечная нотация потрясающая (swift 4.2) 👌

btn.titleLabel?.font = .systemFont(ofSize: 12)

Ответ 4

Вам не нужно принудительно разворачивать titleLabel, чтобы установить его.

myButton.titleLabel?.font = UIFont(name: YourfontName, size: 20)

Так как вы не используете titleLabel здесь, вы можете просто использовать его, и если он будет равен нулю, это будет просто no-op.

Я также добавлю, как говорят другие люди, свойство шрифта устарело и не забудьте использовать setTitle:forControlState: при настройке текста заголовка.

Ответ 5

Из documentation:

Шрифт, используемый для отображения текста на кнопке. (Устаревший в iOS 3.0). Вместо этого используйте свойство font titleLabel.)

Ответ 6

Если у вас проблемы с размером шрифта (ваш шрифт не отвечает на изменения размера)...

@codester имеет правильный код:

myButton.titleLabel!.font =  UIFont(name: YourfontName, size: 20)

Однако размер моего шрифта не менялся. Оказывается, я прошу шрифта, которого не было ( "HelveticaNeue-Regular" ). Это не вызвало краха, но, похоже, просто игнорировало это утверждение шрифта из-за этого. Как только я изменил шрифт на то, что существует, изменения в "size: x" отображались.

Ответ 7

Посмотрите здесь.

Вместо этого вы должны установить шрифт кнопки titleLabel.

myButton.titleLabel!.font = UIFont(name: "...", 10)

Ответ 8

Это работает в Swift 3.0:

btn.titleLabel?.font = UIFont(name:"Times New Roman", size: 20) 

Ответ 9

Вы должны пройти через свойство titleLabel.

button.titleLabel.font

Свойство font устарело с iOS 3.0.

Ответ 10

Если вы устанавливаете AttributedString для UIButton, то вы можете сделать следующее.

let attributedText = NSAttributedString(string: "Hello", attributes: [NSAttributedStringKey.font: UIFont(name: "Calibri", size: 19)])
okayButton.setAttributedTitle(attributedText, for: .normal)

Ответ 11

Если вам нужно изменить только размер (Swift 4.0):

button.titleLabel?.font = button.titleLabel?.font.withSize(12)

Ответ 12

мы можем использовать различные типы системных шрифтов, как показано ниже

myButton.titleLabel?.font = UIFont.boldSystemFont(ofSize: 17)
myButton.titleLabel?.font = UIFont.italicSystemFont(ofSize:UIFont.smallSystemFontSize)
myButton.titleLabel?.font = UIFont.boldSystemFont(ofSize: UIFont.buttonFontSize)

и ваш собственный шрифт, как показано ниже

    myButton.titleLabel?.font = UIFont(name: "Helvetica", size:12)

Ответ 13

Теперь этот способ не работает:

 btn.titleLabel?.font = UIFont(name: "Helvetica", size:12)

Это работает:

 btn.titleLabel?.font = UIFont.init(name: "Helvetica", size:12)

Ответ 14

Пример: button.titleLabel?.font = UIFont(name: "HelveticaNeue-Bold", size: 12)

  • Если вы хотите использовать шрифт defaul из собственного семейства, используйте, например: "HelveticaNeue"
  • Если вы хотите указать семейный шрифт, используйте, например: "HelveticaNeue-Bold"

Ответ 15

эта работа для меня, спасибо. Я хочу изменить только размер текста, а не изменить имя шрифта.

var fontSizeButtonBig:Int = 30

btnMenu9.titleLabel?.font =.systemFont(ofSize: CGFloat (fontSizeButtonBig))

Ответ 16

В Xamarin.iOS вы можете написать код на С# следующим образом:

myButton.TitleLabel.Font = UIFont.FromName( "Helvetica-Bold", 33f);