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.


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)

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.


39
label.font = UIFont.systemFontOfSize(20)

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)

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)

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)



3

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

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

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)

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!


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



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)


1

In Swift 3:

label = UIFont.systemFont(ofSize: 20)

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

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

Ich denke, Sie haben label.font vergessen
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)

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)


0

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

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

-1

SWIFT 3.1

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


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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.