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.