78 votes

Largeur en pixels du texte dans une UILabel

J’ai besoin de dessiner un UILabel barré à travers. C’est pourquoi j’ai sous-classé UILabel et implémentée comme suit :

Ce qui se passe est que le l’UILabel est barré par avec une ligne aussi longtemps que l’étiquette entière, mais le texte peut être plus court. Est-il un moyen pour déterminer la longueur du texte en pixels, de telle sorte que la ligne appropriée peut être tracée ?

Je suis également ouvert à d’autres solutions, si connu  :)

Meilleur, Erik

195voto

Harry Points 2080

NSString a un sizeWithAttributes: méthode qui peut être utilisée pour cela. Elle renvoie une CGSize de la structure, de sorte que vous pourriez faire quelque chose de similaire à la suivante pour trouver la largeur du texte à l'intérieur de votre étiquette.

iOS 7

CGSize textSize = [[label text] sizeWithAttributes:@{NSFontAttributeName:[label font]}];

CGFloat strikeWidth = textSize.width;

iOS <7

Avant iOS7, vous avez à utiliser le sizeWithFont: méthode.

CGSize textSize = [[label text] sizeWithFont:[label font]];

CGFloat strikeWidth = textSize.width;

UILabel a une police de la propriété que vous pouvez utiliser dynamiquement pour obtenir les détails de police de votre étiquette comme je le fais ci-dessus.

Espérons que cela aide :)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X