Jak zmienić rozmiar czcionki UILabel w Swift?

246

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

Sójka
źródło
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)
Connor
źródło
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.

mouselangelo
źródło
39
label.font = UIFont.systemFontOfSize(20)
ma11hew28
źródło
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)
Gautam Sareriya
źródło
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)
YannSteph
źródło
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)
Santo
źródło
5

W Swift 3 ponownie ...

myLabel.font = myLabel.font.withSize(18)
David DelMonte
źródło
4

Swift-3.1

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

aqsa arshad
źródło
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)
Dilip Jangid
źródło
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)
lhmgrassi
źródło
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ć!

Mujtaba Mahmood
źródło
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

iOS
źródło
2

Szybki 4.2

myLabel.font = UIFont.systemFont(ofSize: 12)
Elshad Karimov
źródło
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)

Ikhsan Assaat
źródło
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)
Casey Murray
źródło
Myślę, że zapomniałeś label.font
Ethan Parker
0

Szybki 3

label.font.withSize(16)
matowy
źródło
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()
        }
    }
}
Adam Smaka
źródło
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)

ZahraAsgharzade
źródło
0

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

nameLabel.font = UIFont(name: "GillSans-Bold", size: 27)
Badr
źródło
-1

SWIFT 3.1

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

Ittai Oren
źródło
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

Fangming
źródło