Come posso modificare la dimensione del carattere di un UILabel in Swift?


246

label.font.pointSize è di sola lettura, quindi non sono sicuro di come modificarlo.


extension UILabel {carattere (dimensione: CGFloat) {self.font = UIFont (descrittore: self.font.fontDescriptor, dimensione: dimensione)}}
Mohammad Razipour

Risposte:


589

Puoi farlo in questo modo:

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

O così:

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

Questo utilizzerà lo stesso carattere. 20 possono essere di qualsiasi dimensione tu voglia, ovviamente.

Nota: quest'ultima opzione sovrascriverà il peso del carattere corrente, regularquindi se si desidera preservare il peso del carattere utilizzare la prima opzione.

Aggiornamento Swift 3 :

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

Aggiornamento Swift 4 :

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

o

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

e se usi i caratteri di sistema

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

5
Questo infatti modifica la proprietà pointSize del carattere. Tuttavia, pointSize viene immediatamente reimpostato su 17.0 prima che l'etichetta venga ridisegnata. Quindi c'è un po 'di più rispetto a quello per vedere effettivamente una diversa dimensione del carattere sullo schermo.
Jay,

1
Stai impostando il carattere su 17 ovunque? Storyboard?
Connor,

1
L'ho eseguito sul mio iPhone 5 e il tuo codice funziona. Deve essere un bug nel simulatore.
Jay,

Interessante. Non sono davvero sorpreso di vedere un altro bug però. Sono contento che funzioni
Connor il

5
C'è davvero qualcosa che non va nella documentazione quando ho cercato su Google questo invece di cercarlo perché sapevo che sarebbe stato più veloce.
Andrew Plummer,

72

Penso che il modo migliore per farlo - se mantenere lo stesso carattere che è già stato assegnato UILabel sarebbe:

(usando Swift)

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

(usando Swift 3)

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

Idealmente, lo imposto nel viewDidLayoutSubviewsmetodo, poiché non è necessario modificarlo ogni volta che viene visualizzata la vista.


39
label.font = UIFont.systemFontOfSize(20)

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

Questa soluzione non funzionerà con caratteri personalizzati. Restituirà sempre il carattere di sistema.
Awais Fayyaz,

24

Possiamo impostare il carattere secondo il nostro requisito come

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

Se vuoi solo cambiare la dimensione del tuo carattere, creo questa estensione

// Add extension

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

// Use

myLabel.setSizeFont(60)

Questo mi ha aiutato. Ho cambiato la dimensione del carattere, il suo funzionamento è rapido 4.
R. Mohan

6

Puoi dare anche così

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



3

In swift3, supponi che il tuo nome UILable sia myLable e vuoi cambiarne la dimensione del carattere

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

2

Puoi usare un'estensione.

import UIKit

extension UILabel {

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

Per usarlo:

self.myLabel.fontSize(100)

2

Apple continua a cambiare le cose senza motivo: Swift 4+:

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

grazie Apple per aver perso tempo nelle persone per capire quali metodi di "dimensione del carattere" devono usare!


2

programmazione

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

Attraverso la scheda Story

Per visualizzare più righe impostate 0 (Zero), verrà visualizzata più di una riga nell'etichetta.

Se si desidera visualizzare solo 2 righe impostare 2.

inserisci qui la descrizione dell'immagine

Se si desidera impostare la dimensione minima del carattere per l'etichetta Fare clic su Restringimento automatico e selezionare l' opzione Dimensione minima carattere

Vedi sotto le schermate

inserisci qui la descrizione dell'immagine

Qui imposta la dimensione minima del carattere

EX: 9 (In questa immagine)

Se l'etichetta ottiene più testo in quel momento, il testo dell'etichetta verrà ridotto a 9

inserisci qui la descrizione dell'immagine



1

Ho usato fontWithSizeper un'etichetta con font di sistema leggero, ma torna al normale font di sistema.

Se vuoi mantenere i tratti del carattere, meglio includere i descrittori.

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


1

In Swift 3:

label = UIFont.systemFont(ofSize: 20)

e per utilizzare dimensioni predefinite del sistema, ad esempio:

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

Penso che hai dimenticato l'etichetta .ont
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)

anche se vuoi impostare il carattere dell'etichetta in tutte le viste del tuo progetto prova questo in appDelegate>didFinishLaunch: UILabel.appearance().font = UIFont("your font name", size: 15)


0

Nel caso in cui desideri utilizzare un carattere personalizzato con l'opzione grassetto:

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

-1

SWIFT 3.1

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


Questo non è corretto e non è scritto usando le convenzioni di denominazione del cacao.
Womble,

-1

È molto semplice e conveniente cambiare la dimensione del carattere dallo storyboard e puoi vedere immediatamente il risultato della modifica.

In realtà, è anche molto facile cambiare anche altri attributi dei caratteri nello storyboard, come stile, famiglia di caratteri, ecc.

inserisci qui la descrizione dell'immagine

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.