Question

Je dois mesurer la largeur en pixels d'une chaîne dans Cocoa Touch. Quelqu'un peut-il m'indiquer un lien expliquant comment procéder?

Était-ce utile?

La solution

Sur iPhone OS, il est légèrement différent, regardez plutôt le Référence des ajouts UIKit NSString . L’idée est la même que dans Cocoa pour Mac OS X, mais il existe plus de méthodes.

Pour les lignes de texte simples, utilisez:

- (CGSize)sizeWithFont:(UIFont *)font 
              forWidth:(CGFloat)width 
         lineBreakMode:(UILineBreakMode)lineBreakMode

Et pour les textes multilignes, utilisez:

- (CGSize)sizeWithFont:(UIFont *)font 
     constrainedToSize:(CGSize)size 
         lineBreakMode:(UILineBreakMode)lineBreakMode

L'utilisation d'un UILineBreakMode en tant qu'argument pour des lignes de texte simples peut être source de confusion, mais c'est parce que le saut de ligne est également utilisé pour définir la manière de tronquer le texte.

Autres conseils

Jetez un coup d'œil au Référence des ajouts au kit d'application NSString , en particulier boundingRectWithSize: options: attributs: . La valeur renvoyée par cette routine doit vous donner la largeur de votre NSString .

La solution ci-dessus est maintenant obsolète. Cochez cette case pour iOS 7 +

 sizeWithFont:constrainedToSize:lineBreakMode 

est obsolète maintenant. Utilisez l'extrait de code ci-dessous,

UIFont *font=[UIFont fontWithName:@"Arial" size:16.f];

NSString *name = @"APPLE";

CGSize size = [name sizeWithAttributes:@{NSFontAttributeName:font}];
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top