Как изменить размер шрифта UILabel в Swift?

132

label.font.pointSize доступен только для чтения, поэтому я не уверен, как его изменить.

  • 0
    расширение UILabel {шрифт func (размер: CGFloat) {self.font = UIFont (дескриптор: self.font.fontDescriptor, размер: размер)}}
Теги:
uilabel

16 ответов

315
Лучший ответ

Вы можете сделать это следующим образом:

label.font = UIFont(name: label.font.fontName, size: 20)

Или вы можете сделать это следующим образом:

label.font = label.font.fontWithSize(20)

Это будет использовать тот же шрифт. 20 может быть любого размера, который вы хотите, конечно.

Примечание.. Последняя опция перезапишет текущий вес шрифта до regular, поэтому, если вы хотите сохранить вес шрифта, используйте первый вариант.

Обновление Swift 3:

label.font = label.font.withSize(20)

Swift 4 Upadate:

label.font = labelAccount.font.withSize(20)

и

label.font = UIFont(name:"fontname", size: 20.0)
  • 4
    Это фактически меняет свойство pointSize шрифта. Однако pointSize немедленно сбрасывается до 17.0, прежде чем метка перерисовывается. Так что есть нечто большее, чем просто увидеть другой размер шрифта на экране.
  • 1
    Вы устанавливаете шрифт на 17 где-нибудь? Раскадровка?
Показать ещё 8 комментариев
58

Я думаю, что лучший способ сделать это - если сохранить тот же шрифт, который уже назначен UILabel, будет:

(с помощью Swift)

label.font = label.font.fontWithSize(20)

(используя Swift 3)

label.font = label.font.withSize(20)

В идеале я бы установил это в методе viewDidLayoutSubviews, так как он не должен меняться каждый раз, когда появляется представление.

35
label.font = UIFont.systemFontOfSize(20)
  • 4
    label.font = UIFont.systemFont (ofSize: 20) // в быстром 3
  • 0
    Это решение не будет работать для пользовательских шрифтов. Он всегда возвращает системный шрифт.
22

Мы можем установить шрифт согласно нашему требованию, например,

label.font = UIFont(name: "Avenir-Light", size: 15.0)
label.font = UIFont.boldSystemFontOfSize(15)
label.font = UIFont.italicSystemFontOfSize(15)
label.font = UIFont.systemFontOfSize(17)
6

Если вы хотите изменить размер шрифта, я создаю это расширение

// Add extension

extension UILabel {
    func setSizeFont (sizeFont: Double) {
        self.font =  UIFont(name: self.font.fontName, size: sizeFont)!
        self.sizeToFit()
    }
}

// Use

myLabel.setSizeFont(60)
  • 0
    Это помогло мне. Я изменил размер шрифта, он работает в Swift 4.
4

В Swift 3 снова...

myLabel.font = myLabel.font.withSize(18)
4

Вы также можете указать

labelName.font = UIFont(name: "systemFont", size: 30)
3

Свифта-3,1

label.font = UIFont.systemFont(ofSize: 12)

3

В swift3, предположим, что ваше имя UILable - myLable, и вы хотите изменить его размер шрифта сделайте это

myLable.font = UIFont.systemFont(ofSize: 10)
1

Вы можете использовать расширение.

import UIKit

extension UILabel {

    func sizeFont(_ size: CGFloat) {
        self.font = self.font.withSize(size)
    }
}

Чтобы использовать его:

self.myLabel.fontSize(100)
1

В Swift 3:

label = UIFont.systemFont(ofSize: 20)

и использовать размеры предустановок системы, например:

label = UIFont.systemFont(ofSize: UIFont.smallSystemFontSize)
  • 0
    Я думаю, что вы забыли label.font
1

Я использовал fontWithSize для ярлыка со шрифтом светлой системы, но он возвращается к обычному системному шрифту.

Если вы хотите сохранить черты шрифта, лучше включить дескрипторы.

label.font = UIFont(descriptor: label.font.fontDescriptor(), size: 16.0)

0

Очень легко и удобно изменять размер шрифта из раскадровки, и вы можете сразу увидеть результат изменения.

На самом деле также очень легко изменить другие атрибуты шрифта в раскадровке, например стиль, семейство шрифтов и т.д.

Изображение 1853

0

SWIFT 3.1

Label.font = Label.font.withSize(NewValue)

  • 0
    Это неверно и не написано с использованием соглашений об именах Какао.
0

Swift 3.1

import UIKit

extension UILabel {
    var fontSize: CGFloat {
        get {
            return self.font.pointSize
        }
        set {
            self.font =  UIFont(name: self.font.fontName, size: newValue)!
            self.sizeToFit()
        }
    }
}
0

Swift 3

label.font.withSize(16)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню