Question

Je définis un cadre Uilabels en fonction de ce qui est renvoyé par Uifont Size avecfont, mais pour une raison quelconque lorsque j'utilise une police personnalisée, les valeurs renvoyées incluent un rembourrage comme indiqué ci-dessous.

Quand j'utilise BoldSystemFontofSize Le texte est aligné verticalement au milieu (C'est ce que je veux), mais quand j'utilise nom Je me retrouve avec un rembourrage sous le texte. Une raison pour laquelle Taille avec L'ajout dans le rembourrage?

enter image description here

Voici mon code ...

CGRect frameLabel = label.frame;
CGSize sizeLabel = [label.text sizeWithFont:label.font];
frameLabel.size.width = sizeLabel.width;
frameLabel.size.height = sizeLabel.height;
[label setBackgroundColor:[UIColor redColor]];

** Éditer **

Je peux calculer le rembourrage supérieur et inférieur à l'aide de ce code et ajuster les étiquettes frame.origin.y pour centrer verticalement mon label où il doit être

float topPadding = [label.font ascender] - [label.font capHeight];
float bottomPadding = [label.font lineHeight] - [label.font ascender];

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top