Pregunta

Necesito medir el ancho de píxel de una cadena en Cocoa Touch. ¿Alguien puede señalarme un enlace que explique cómo hacer esto?

¿Fue útil?

Solución

En el iPhone OS es ligeramente diferente, en su lugar, mire el Referencia de adiciones de NSString UIKit . La idea es la misma que en Cocoa para Mac OS X, pero hay más métodos.

Para líneas individuales de uso de texto:

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

Y para textos multilínea use:

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

El uso de un UILineBreakMode como argumento para líneas individuales de texto puede ser confuso, pero esto se debe a que el salto de línea también se utiliza para definir cómo truncar el texto.

Otros consejos

Eche un vistazo a NSString Application Kit Additions Reference , específicamente boundingRectWithSize: opciones: atributos: . El valor devuelto por esa rutina debería darle el ancho de su NSString .

La solución anterior ahora está en desuso. Comprueba esto para iOS 7+

 sizeWithFont:constrainedToSize:lineBreakMode 

está en desuso ahora. Utilice el fragmento de código a continuación,

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

NSString *name = @"APPLE";

CGSize size = [name sizeWithAttributes:@{NSFontAttributeName:font}];
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top