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.

Geai
la source
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)
Connor
la source
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.

mouselangelo
la source
39
label.font = UIFont.systemFontOfSize(20)
ma11hew28
la source
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)
Gautam Sareriya
la source
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)
YannSteph
la source
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)
Santo
la source
5

Dans Swift 3 à nouveau ...

myLabel.font = myLabel.font.withSize(18)
David DelMonte
la source
4

Swift-3.1

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

aqsa arshad
la source
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)
Dilip Jangid
la source
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)
lhmgrassi
la source
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!

Mujtaba Mahmood
la source
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

iOS
la source
2

Swift 4.2

myLabel.font = UIFont.systemFont(ofSize: 12)
Elshad Karimov
la source
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)

Ikhsan Assaat
la source
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)
Casey Murray
la source
Je pense que vous avez oublié label.font
Ethan Parker
0

Swift 3

label.font.withSize(16)
mat
la source
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
la source
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)

ZahraAsgharzade
la source
0

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

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

SWIFT 3.1

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

Ittai Oren
la source
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

Fangming
la source