ios - controles - ¿Cómo obtener el ancho correcto de una UILabel después de configurar el texto?
uilabel padding swift (2)
Debes usar [label sizeToFit]
sizeToFit
en la etiqueta estirará la etiqueta para acomodar el texto.
La otra solución es calcular el ancho de la cadena y replantear la etiqueta en función del ancho de las cadenas.
Para la segunda solución puedes calcular el tamaño de la cadena como
CGSize strSize = CGSizeZero;
CGSize minSize = CGSizeZero;
if([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0)
{
NSAttributedString *attributedText = [[[NSAttributedString alloc] initWithString:text attributes:@{NSFontAttributeName: label.font}] autorelease];
CGRect rect = [attributedText boundingRectWithSize:constraintSize
options:NSStringDrawingUsesLineFragmentOrigin
context:nil];
strSize = rect.size;
}
else
{
strSize = [text sizeWithFont:label.font constrainedToSize:constraintSize];
}
Obtengo el ancho de una UILabel [después de que el texto se haya configurado] con:
myUILabel.frame.width
pero siempre es el mismo ancho, no importa si contiene la cadena: "Hello."
o la cadena: "Hello everyone on this planet."
. Pero la UILabel necesita tener un ancho mayor con la segunda Cuerda.
Pruebe myUILabel.intrinsicContentSize()
. Asegúrese de configurar su fuente primero, por supuesto.