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

246

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

сойка
источник
расширение UILabel {шрифт func (размер: CGFloat) {self.font = UIFont (дескриптор: self.font.fontDescriptor, размер: размер)}}
Мухаммед Разипур

Ответы:

590

Вы можете сделать это так:

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

Или вот так:

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

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

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

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

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

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

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

или

label.font = UIFont(name:"fontname", size: 20.0)

и если вы используете системные шрифты

label.font = UIFont.systemFont(ofSize: 20.0)
label.font = UIFont.boldSystemFont(ofSize: 20.0)
label.font = UIFont.italicSystemFont(ofSize: 20.0)
Коннор
источник
5
Это фактически меняет свойство pointSize шрифта. Однако pointSize немедленно сбрасывается до 17.0, прежде чем метка перерисовывается. Так что есть нечто большее, чем просто увидеть другой размер шрифта на экране.
Джей
1
Вы устанавливаете шрифт на 17 где-нибудь? Раскадровка?
Коннор
1
Я запустил его на своем iPhone 5, и ваш код работает. Это должно быть ошибка в симуляторе.
Джей
Это интересно. Не очень удивлен, увидев еще одну ошибку, хотя. Рад, что это работает
Коннор
5
Там действительно что-то не так с документацией, когда я просто гуглил это вместо того, чтобы просто искать это, потому что я знал, что это будет быстрее.
Эндрю Пламмер
72

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

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

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

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

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

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

mouselangelo
источник
39
label.font = UIFont.systemFontOfSize(20)
ma11hew28
источник
5
label.font = UIFont.systemFont (ofSize: 20) // в быстром 3
Кан Бюль
Это решение не будет работать для пользовательских шрифтов. Он всегда возвращает системный шрифт.
Авайс Файяз
24

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

label.font = UIFont(name: "Avenir-Light", size: 15.0)
label.font = UIFont.boldSystemFontOfSize(15)
label.font = UIFont.italicSystemFontOfSize(15)
label.font = UIFont.systemFontOfSize(17)
Гаутам Саририя
источник
8

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

// Add extension

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

// Use

myLabel.setSizeFont(60)
YannSteph
источник
Это помогло мне. Я изменил размер шрифта, он работает в Swift 4.
Р. Мохан,
6

Вы можете дать как это также

labelName.font = UIFont(name: "systemFont", size: 30)
Santo
источник
5

В Swift 3 снова ...

myLabel.font = myLabel.font.withSize(18)
Дэвид ДельМонте
источник
4

Свифт-3,1

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

Акша Аршад
источник
3

Предположим, что в swift3 ваше UILable имя - myLable, и вы хотите изменить размер шрифта.

myLable.font = UIFont.systemFont(ofSize: 10)
Дилип Джангид
источник
2

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

import UIKit

extension UILabel {

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

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

self.myLabel.fontSize(100)
lhmgrassi
источник
2

Apple продолжает менять вещи без причины: Swift 4+:

myLabel.font = UIFont.systemFont(ofSize: 16)

спасибо apple за потраченное время, чтобы выяснить, какие методы "размера шрифта" им нужно использовать!

Муджаба Махмуд
источник
2

Программный

label.font = UIFont.systemFont(ofSize: 20.0)
label.font = UIFont.boldSystemFont(ofSize: 20.0)
label.font = UIFont.italicSystemFont(ofSize: 20.0)

label.font = UIFont(name:"Helvetica Neue", size: 20.0)//Set your font name here

Сквозь историю

Для отображения нескольких строк, установленных на 0 (ноль), на вашем ярлыке будет отображаться более одной строки.

Если вы хотите отобразить только 2 строки, установите 2.

введите описание изображения здесь

Если вы хотите установить минимальный размер шрифта для печати этикеток Нажмите автосокращения и выберите Минимальный размер шрифта вариант

Смотрите ниже экранов

введите описание изображения здесь

Здесь задайте минимальный размер шрифта

Пример: 9 (на этом изображении)

Если ваш ярлык получит больше текста, текст ярлыка будет уменьшен до 9

введите описание изображения здесь

IOS
источник
2

Swift 4.2

myLabel.font = UIFont.systemFont(ofSize: 12)
Эльшад Каримов
источник
1

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

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

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

Ихсан Ассаат
источник
1

В Swift 3:

label = UIFont.systemFont(ofSize: 20)

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

label = UIFont.systemFont(ofSize: UIFont.smallSystemFontSize)
Кейси Мюррей
источник
Я думаю, что вы забыли label.font
Итан Паркер
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 4:

label.font = UIFont("your font name", size: 15)

Также, если вы хотите установить шрифт надписи во всех представлениях вашего проекта, попробуйте это appDelegate>didFinishLaunch: UILabel.appearance().font = UIFont("your font name", size: 15)

ZahraAsgharzade
источник
0

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

nameLabel.font = UIFont(name: "GillSans-Bold", size: 27)
Бадр
источник
-1

SWIFT 3.1

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

Итай Орен
источник
Это не правильно и не написано с использованием соглашений об именах Какао.
Womble
-1

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

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

введите описание изображения здесь

Fangming
источник