Comment changer la taille de police d'un UILabel dans Swift?


246

label.font.pointSize est en lecture seule, donc je ne sais pas comment le changer.


extension UILabel {police func (taille: CGFloat) {self.font = UIFont (descripteur: self.font.fontDescriptor, taille: taille)}}
Mohammad Razipour

Réponses:


589

Vous pouvez le faire comme ceci:

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

Ou comme ça:

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

Cela utilisera la même police. 20 peut être de la taille que vous voulez bien sûr.

Remarque: Cette dernière option remplacera le poids de police actuel, regulardonc si vous souhaitez conserver le poids de police, utilisez la première option.

Mise à jour Swift 3 :

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

Mise à jour Swift 4 :

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

ou

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

et si vous utilisez les polices système

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

5
Cela modifie en fait la propriété pointSize de la police. Cependant, le pointSize est immédiatement réinitialisé à 17.0 avant que l'étiquette ne soit redessinée. Il y a donc un peu plus que cela pour réellement voir une taille de police différente à l'écran.
Jay

1
Définissez-vous la police à 17 n'importe où? Storyboard?
Connor

1
Je l'ai exécuté sur mon iPhone 5 et votre code fonctionne. Ce doit être un bug dans le simulateur.
Jay

C'est intéressant. Pas vraiment surpris de voir un autre bug. Heureux que cela fonctionne
Connor

5
Il y a sérieusement quelque chose qui ne va pas avec la documentation quand je viens de googler ceci au lieu de simplement la rechercher parce que je savais que ce serait plus rapide.
Andrew Plummer,

72

Je pense que la meilleure façon de le faire - si vous conservez la même police qui est déjà attribuée à la UILabel serait:

(en utilisant Swift)

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

(en utilisant Swift 3)

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

Idéalement, je définirais cela dans la viewDidLayoutSubviewsméthode, car il n'a pas besoin de changer à chaque fois que la vue apparaît.


39
label.font = UIFont.systemFontOfSize(20)

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

Cette solution ne fonctionnera pas pour les polices personnalisées. Il renverra toujours la police système.
Awais Fayyaz

24

Nous pouvons définir la police selon nos besoins comme,

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

Si vous voulez juste changer la taille de votre police, je crée cette extension

// Add extension

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

// Use

myLabel.setSizeFont(60)

Cela m'a aidé. J'ai changé la taille de la police, son fonctionnement dans swift 4.
R. Mohan

6

Vous pouvez aussi donner comme ça

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



3

Dans swift3, supposez que votre nom UILable est myLable et que vous souhaitez modifier sa taille de police, procédez comme suit

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

2

Vous pouvez utiliser une extension.

import UIKit

extension UILabel {

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

Pour l'utiliser:

self.myLabel.fontSize(100)

2

Apple continue de changer les choses sans raison: Swift 4+:

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

merci à Apple d'avoir perdu du temps pour trouver les méthodes de "taille de police" à utiliser!


2

Par programme

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

Par le biais de Story board

Pour afficher plusieurs lignes définies sur 0 (zéro), cela affichera plusieurs lignes dans votre étiquette.

Si vous ne souhaitez afficher que 2 lignes, réglez 2.

entrez la description de l'image ici

Si vous voulez définir la taille de police minimale pour l' étiquette Cliquez réduction automatique et Select Taille de la police Option

Voir les écrans ci-dessous

entrez la description de l'image ici

Définissez ici la taille de police minimale

EX: 9 (dans cette image)

Si votre étiquette obtient plus de texte à ce moment-là, le texte de votre étiquette sera réduit jusqu'à 9

entrez la description de l'image ici



1

J'ai utilisé fontWithSizeune étiquette avec une police système légère, mais elle redevient une police système normale.

Si vous souhaitez conserver les traits de la police, mieux vaut inclure les descripteurs.

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


1

Dans Swift 3:

label = UIFont.systemFont(ofSize: 20)

et d'utiliser des tailles de système prédéfinies, par exemple:

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

Je pense que vous avez oublié label.font
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)

aussi, si vous souhaitez définir la police d'étiquette dans toutes les vues de votre projet, essayez ceci dans appDelegate>didFinishLaunch: UILabel.appearance().font = UIFont("your font name", size: 15)


0

Si vous souhaitez utiliser une police personnalisée avec une option en gras:

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

-1

SWIFT 3.1

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


Ce n'est pas correct et n'est pas écrit à l'aide des conventions d'appellation Cocoa.
Womble

-1

Il est très facile et pratique de modifier la taille de la police à partir du storyboard et vous pouvez voir instantanément le résultat du changement.

En fait, il est également très facile de modifier d'autres attributs de police sur le storyboard, comme le style, la famille de polices, etc.

entrez la description de l'image ici

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.