Comment puis-je obtenir la taille et le nom de la police d'un UILabel?
105
J'ai un UILabel dont j'ai défini une taille de police et un nom de police avec Interface Builder. Maintenant, je dois lire les valeurs des deux dans mon ViewController.
Liez l'étiquette à cet IBOutlet sous les points de vente «File's Owner» dans Interface Builder. Si vous n'utilisez pas ARC, assurez-vous de le libérer dans -dealloc
Ne marche pas. Je peux y écrire du texte, mais le fontName et le pointSize sont nuls.
Tim
Voulez-vous dire que vous pouvez modifier par programme le texte de l'étiquette, mais que vous ne pouvez pas accéder à fontName et pointSize? J'ai modifié la réponse ci-dessus pour inclure self.label, au lieu de simplement label, car je n'ai pas mentionné la création d'une variable d'instance pour label.
Ned le
Assurez-vous également que vous avez connecté l'étiquette dans Interface Builder avec l'IBOutlet que vous avez créé dans File's Owner (le contrôleur de vue).
Ned
2
Ah, j'ai oublié la connexion dans IB avec le propriétaire du fichier.
Tim
29
Rapide:
var currentFontSize = button.titleLabel?.font.pointSize
La valeur Pointsize n'est pas la taille de la police utilisée dans la propriété de taille UIFont. Disons que si vous définissez la taille de la police du générateur d'interface sur 14 et que vous imprimez le pointSize, vous n'obtiendrez que 11.
Semble fonctionner maintenant. Si je règle la taille de police d'une étiquette dans le générateur d'interface / éditeur de storyboard sur 17 ... myLabel.font.pointSizerenvoie 17.
Derek Soike
1
vous devez l'attacher à un IBOutlet UILabel, puis à label.font ...
Réponses:
Ajoutez une propriété au fichier .h de votre contrôleur de vue:
Liez l'étiquette à cet IBOutlet sous les points de vente «File's Owner» dans Interface Builder. Si vous n'utilisez pas ARC, assurez-vous de le libérer dans -dealloc
Ensuite, pour obtenir le nom et la taille de la police, il vous suffit de
la source
Rapide:
la source
La valeur Pointsize n'est pas la taille de la police utilisée dans la propriété de taille UIFont. Disons que si vous définissez la taille de la police du générateur d'interface sur 14 et que vous imprimez le pointSize, vous n'obtiendrez que 11.
la source
myLabel.font.pointSize
renvoie 17.vous devez l'attacher à un IBOutlet UILabel, puis à label.font ...
la source