¿Cuál es la mejor manera de establecer las coordenadas x, y de UILabel pero dejar que el auto anchura / altura en el iPhone?
-
06-09-2019 - |
Pregunta
Sé exactamente donde quiero colocar mi UILabel en un UIView, pero no necesariamente saben qué altura / anchura que desea que tenga en tiempo de compilación, lo que establecer una anchura / altura en initWithFrame es inútil. Quiero ser capaz de simplemente init su punto x, y, y luego usar algo como [myLabel sizeToFit] para que pueda establecer automagicamente la anchura / altura en base a mi modo de interrupción y el contenido.
La solución que estoy buscando es cómo establecer el punto de origen de la UILabel mientras que la creación es la anchura / altura a una serie dinámica basada en el texto que figura en la etiqueta.
No hay solución correcta
Otros consejos
Tamaño de la etiqueta primero, a continuación, establecer su origen o centro:
[myLabel sizeToFit];
CGRect frame = myLabel.frame;
frame.origin = CGPointMake(x, y);
myLabel.frame = frame;
o
[myLabel sizeToFit];
myLabel.center = CGPointMake(x, y);
Si ya tiene el marco con el tamaño dinámico, pero desea cambiar el origen:
CGRect myFrame = myLabel.frame;
myFrame.origin = aCGPoint;
myLabel.frame = myFrame;
Si es necesario calcular el tamaño:
CGSize suggestedSize = [myString sizeWithFont:myLabel.font constrainedToSize:CGSizeMake(FLT_MAX, FLT_MAX) lineBreakMode:UILineBreakModeWordWrap];
Por supuesto, se puede cambiar el FLT_MAX para constreñir a una anchura o heigh específica.
EDIT: No me di cuenta que quería para calcular el tamaño mediante programación. Se ha añadido una mejor explicación anterior.