Jak zmienić rozmiar czcionki UILabel w Swift?


246

label.font.pointSize jest tylko do odczytu, więc nie jestem pewien, jak to zmienić.


rozszerzenie UILabel {font func (rozmiar: CGFloat) {self.font = UIFont (deskryptor: self.font.fontDescriptor, rozmiar: rozmiar)}}
Mohammad Razipour

Odpowiedzi:


590

Możesz to zrobić w następujący sposób:

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

Lub tak:

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

Spowoduje to użycie tej samej czcionki. 20 może oczywiście mieć dowolny rozmiar.

Uwaga: ta ostatnia opcja zastąpi bieżącą grubość czcionki, regularwięc jeśli chcesz zachować grubość czcionki, użyj pierwszej opcji.

Aktualizacja Swift 3 :

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

Aktualizacja Swift 4 :

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

lub

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

i jeśli używasz czcionek systemowych

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

5
To faktycznie zmienia właściwość pointSize czcionki. Jednak pointSize zostaje natychmiast zresetowany do 17.0, zanim etykieta zostanie przerysowana. Jest więc coś więcej, niż faktyczny rozmiar czcionki na ekranie.
Jay

1
Czy gdziekolwiek ustawiasz czcionkę na 17? Storyboard?
Connor

1
Uruchomiłem go na moim iPhonie 5 i twój kod działa. To musi być błąd w symulatorze.
Jay

To interesujące. Jednak nie jestem zaskoczony, widząc kolejny błąd. Cieszę się, że działa
Connor,

5
Poważnie coś jest nie tak z dokumentacją, kiedy po prostu przejrzałem to, a nie tylko sprawdziłem, bo wiedziałem, że będzie szybciej.
Andrew Plummer

72

Myślę, że najlepszym sposobem na zrobienie tego - jeśli zachowasz tę samą czcionkę, która jest już przypisana UILabel , będzie:

(za pomocą Swift)

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

(za pomocą Swift 3)

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

Idealnie ustawiłbym to w viewDidLayoutSubviewsmetodzie, ponieważ nie trzeba jej zmieniać za każdym razem, gdy pojawia się widok.


39
label.font = UIFont.systemFontOfSize(20)

5
label.font = UIFont.systemFont (ofSize: 20) // w swift 3
Kang Byul

To rozwiązanie nie będzie działać dla niestandardowych czcionek. Zawsze zwróci czcionkę systemową.
Awais Fayyaz,

24

Możemy ustawić czcionkę zgodnie z naszymi wymaganiami, np.

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

Jeśli chcesz tylko zmienić rozmiar czcionki, tworzę to rozszerzenie

// Add extension

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

// Use

myLabel.setSizeFont(60)

To mi pomogło. Zmieniłem rozmiar czcionki, działa ona w trybie szybkim 4.
R. Mohan,

6

Możesz dać tak również

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



3

Załóżmy, że w swift3 twoja nazwa UILable to myLable i zrób to, aby zmienić rozmiar czcionki

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

2

Możesz użyć rozszerzenia.

import UIKit

extension UILabel {

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

Aby go użyć:

self.myLabel.fontSize(100)

2

Apple ciągle zmienia rzeczy bez powodu: Swift 4+:

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

dzięki Apple za marnowanie czasu na zastanawianie się, jakich metod „rozmiaru czcionki” muszą użyć!


2

Programowo

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

Poprzez planszę historii

Aby wyświetlić wiele linii ustawionych na 0 (zero), wyświetli się więcej niż jeden wiersz na etykiecie.

Jeśli chcesz wyświetlić tylko 2 linie, ustaw 2.

wprowadź opis zdjęcia tutaj

Jeśli chcesz ustawić minimalny rozmiar czcionki dla etykiety Kliknij Autoshrink i wybierz Minimalny rozmiar czcionki opcję

Zobacz poniższe ekrany

wprowadź opis zdjęcia tutaj

Tutaj ustaw minimalny rozmiar czcionki

EX: 9 (na tym obrazku)

Jeśli etykieta otrzyma więcej tekstu w tym czasie, tekst etykiety zmniejszy się do 9

wprowadź opis zdjęcia tutaj



1

Użyłem fontWithSizeetykiety z lekką czcionką systemową, ale zmienia się ona z powrotem w normalną czcionkę systemową.

Jeśli chcesz zachować cechy czcionki, lepiej dołączyć deskryptory.

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


1

W Swift 3:

label = UIFont.systemFont(ofSize: 20)

i aby użyć wstępnie ustawionych rozmiarów systemu, na przykład:

label = UIFont.systemFont(ofSize: UIFont.smallSystemFontSize)

Myślę, że zapomniałeś label.font
Ethan Parker


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)

także jeśli chcesz ustawić czcionkę etykiety we wszystkich widokach swojego projektu, wypróbuj to w appDelegate>didFinishLaunch: UILabel.appearance().font = UIFont("your font name", size: 15)


0

Jeśli chcesz użyć niestandardowej czcionki z pogrubioną opcją:

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

-1

SWIFT 3.1

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


To nie jest poprawne i nie jest napisane przy użyciu konwencji nazewnictwa kakao.
Womble

-1

Zmiana rozmiaru czcionki z serii ujęć jest bardzo łatwa i wygodna, a efekt zmiany jest natychmiast widoczny.

W rzeczywistości bardzo łatwo jest również zmienić inne atrybuty czcionek w serii ujęć, takie jak styl, rodzina czcionek itp.

wprowadź opis zdjęcia tutaj

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.