Medir el ancho de píxel de una cadena
-
07-07-2019 - |
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?
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}];