Wie ändere ich die Schriftgröße eines UILabels in Swift?

246

label.font.pointSize ist schreibgeschützt, daher bin ich mir nicht sicher, wie ich es ändern soll.

Jay
quelle
Erweiterung UILabel {func font (Größe: CGFloat) {self.font = UIFont (Deskriptor: self.font.fontDescriptor, Größe: Größe)}}
Mohammad Razipour

Antworten:

589

Sie können es so machen:

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

Oder so:

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

Dies wird dieselbe Schriftart verwenden. 20 kann natürlich jede gewünschte Größe haben.

Hinweis: Die letztere Option überschreibt die aktuelle Schriftgröße. regularWenn Sie die Schriftgröße beibehalten möchten, verwenden Sie die erste Option.

Swift 3 Update :

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

Swift 4 Update :

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

oder

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

und wenn Sie die Systemschriftarten verwenden

label.font = UIFont.systemFont(ofSize: 20.0)
label.font = UIFont.boldSystemFont(ofSize: 20.0)
label.font = UIFont.italicSystemFont(ofSize: 20.0)
Connor
quelle
5
Dies ändert tatsächlich die pointSize-Eigenschaft der Schriftart. Die pointSize wird jedoch sofort auf 17.0 zurückgesetzt, bevor das Etikett neu gezeichnet wird. Es steckt also noch ein bisschen mehr dahinter, um tatsächlich eine andere Schriftgröße auf dem Bildschirm zu sehen.
Jay
1
Stellen Sie die Schriftart irgendwo auf 17 ein? Storyboard?
Connor
1
Ich habe es auf meinem iPhone 5 ausgeführt und Ihr Code funktioniert. Es muss ein Fehler im Simulator sein.
Jay
Das ist interessant. Nicht wirklich überrascht, einen weiteren Fehler zu sehen. Ich
Connor
5
Mit der Dokumentation stimmt etwas nicht, wenn ich sie nur gegoogelt habe, anstatt sie nur nachzuschlagen, weil ich wusste, dass sie schneller sein würde.
Andrew Plummer
72

Ich denke, der beste Weg, dies zu tun - wenn Sie dieselbe Schriftart beibehalten, die bereits der zugewiesen ist, UILabel wäre:

(mit Swift)

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

(mit Swift 3)

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

Idealerweise würde ich dies in der viewDidLayoutSubviewsMethode festlegen , da es nicht jedes Mal geändert werden muss, wenn die Ansicht angezeigt wird.

mouselangelo
quelle
39
label.font = UIFont.systemFontOfSize(20)
ma11hew28
quelle
5
label.font = UIFont.systemFont (ofSize: 20) // in Swift 3
Kang Byul
Diese Lösung funktioniert nicht für benutzerdefinierte Schriftarten. Es wird immer die Systemschrift zurückgegeben.
Awais Fayyaz
24

Wir können die Schriftart gemäß unserer Anforderung einstellen wie:

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
quelle
8

Wenn Sie nur die Größe Ihrer Schriftart ändern möchten, erstelle ich diese Erweiterung

// Add extension

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

// Use

myLabel.setSizeFont(60)
YannSteph
quelle
Das hat mir geholfen. Ich habe die Schriftgröße geändert, es funktioniert in schnell 4.
R. Mohan
6

Sie können auch so geben

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

Wieder in Swift 3 ...

myLabel.font = myLabel.font.withSize(18)
David DelMonte
quelle
4

Swift-3.1

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

aqsa arshad
quelle
3

Angenommen, Ihr UILable-Name lautet in swift3 myLable und Sie möchten die Schriftgröße ändern

myLable.font = UIFont.systemFont(ofSize: 10)
Dilip Jangid
quelle
2

Sie können eine Erweiterung verwenden.

import UIKit

extension UILabel {

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

Um es zu benutzen:

self.myLabel.fontSize(100)
lhmgrassi
quelle
2

Apple ändert ständig Dinge ohne Grund: Swift 4+:

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

Vielen Dank an Apple, dass er die Leute Zeit verschwendet hat, um herauszufinden, welche "Schriftgrößen" -Methoden sie verwenden müssen!

Mujtaba Mahmood
quelle
2

Programmatisch

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

Durch das Storyboard

Um mehrere Zeilen anzuzeigen, setzen Sie 0 (Null). Dadurch wird mehr als eine Zeile in Ihrem Etikett angezeigt.

Wenn Sie nur 2 Zeilen anzeigen möchten, stellen Sie 2 ein.

Geben Sie hier die Bildbeschreibung ein

Wenn Sie die Mindestschriftgröße für die Beschriftung festlegen möchten, klicken Sie auf Automatisch schrumpfen und wählen Sie Mindestschriftgröße Option

Siehe unten stehende Bildschirme

Geben Sie hier die Bildbeschreibung ein

Hier stellen Sie die minimale Schriftgröße ein

EX: 9 (In diesem Bild)

Wenn Ihr Etikett zu diesem Zeitpunkt mehr Text erhält, wird Ihr Etikettentext auf 9 verkleinert

Geben Sie hier die Bildbeschreibung ein

iOS
quelle
2

Swift 4.2

myLabel.font = UIFont.systemFont(ofSize: 12)
Elshad Karimov
quelle
1

ich benutzte fontWithSize ein Etikett mit leichter Systemschrift verwendet, aber es ändert sich wieder in die normale Systemschrift.

Wenn Sie die Merkmale der Schrift beibehalten möchten, sollten Sie die Deskriptoren besser einbeziehen.

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

Ikhsan Assaat
quelle
1

In Swift 3:

label = UIFont.systemFont(ofSize: 20)

und um voreingestellte Systemgrößen zu verwenden, zum Beispiel:

label = UIFont.systemFont(ofSize: UIFont.smallSystemFontSize)
Casey Murray
quelle
Ich denke, Sie haben label.font vergessen
Ethan Parker
0

Swift 3

label.font.withSize(16)
matt
quelle
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
quelle
0

swift 4:

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

Wenn Sie die Beschriftungsschrift in allen Ansichten Ihres Projekts festlegen möchten, versuchen Sie Folgendes appDelegate>didFinishLaunch: UILabel.appearance().font = UIFont("your font name", size: 15)

ZahraAsgharzade
quelle
0

Wenn Sie eine benutzerdefinierte Schriftart mit Fettdruck verwenden möchten:

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

SWIFT 3.1

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

Ittai Oren
quelle
Dies ist nicht korrekt und wird nicht unter Verwendung von Kakao-Namenskonventionen geschrieben.
Womble
-1

Es ist sehr einfach und bequem, die Schriftgröße über das Storyboard zu ändern, und Sie können sofort das Ergebnis der Änderung sehen.

Tatsächlich ist es auch sehr einfach, andere Schriftattribute im Storyboard zu ändern, z. B. Stil, Schriftfamilie usw.

Geben Sie hier die Bildbeschreibung ein

Fangming
quelle