Як змінити розмір шрифту UILabel в Swift?


246

label.font.pointSize є лише для читання, тому я не знаю, як це змінити.


розширення UILabel {шрифт func (розмір: CGFloat) {self.font = UIFont (дескриптор: self.font.fontDescriptor, розмір: розмір)}}
Mohammad Razipour

Відповіді:


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методі, оскільки його не потрібно змінювати щоразу, коли з'являється вид.


39
label.font = UIFont.systemFontOfSize(20)

5
label.font = UIFont.systemFont (розмір: 20) // у стрімкому 3
Кан Бюль

Це рішення не працюватиме для користувацьких шрифтів. Він завжди поверне шрифт системи.
Awais Fayyaz

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)

Це мені допомогло. Я змінив розмір шрифту, його робота працює швидко 4.
Р. Мохан

6

Ви також можете подарувати подібне

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



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)

2

Apple продовжує змінювати речі без причини: Swift 4+:

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

дякую яблуку, що витрачає час людям, щоб розібратися, які методи "розміру шрифту" їм потрібно використовувати!


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

Через дошку Story

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

Якщо ви хочете відобразити лише 2 рядки, встановіть 2.

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

Якщо ви хочете встановити мінімальний розмір шрифту для мітки, натисніть Автоматичне посилання та виберіть опцію Мінімальний розмір шрифту

Дивіться нижче екрани

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

Тут встановлено мінімальний розмір шрифту

EX: 9 (на цьому зображенні)

Якщо в цей час ваша етикетка отримає більше тексту, текст вашої етикетки зменшиться до 9

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



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

Швидкий 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)


0

У випадку, якщо ви хочете використовувати спеціальний шрифт із жирною опцією:

nameLabel.font = UIFont(name: "GillSans-Bold", size: 27)

-1

SWIFT 3.1

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


Це невірно, і не пишеться з використанням умов іменування какао.
Womble

-1

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

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

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.