Quelle est la meilleure façon de définir les coordonnées x, y de UILabel, mais laissez-le largeur auto / hauteur sur l'iPhone?
-
06-09-2019 - |
Question
Je sais exactement où je veux placer mon UILabel dans un UIView, mais je ne sais pas nécessairement quelle hauteur / largeur, je veux qu'il y ait au moment de la compilation, donc définir une largeur / hauteur initWithFrame est inutile. Je veux être en mesure de simplement initialiser son x, point y, puis utiliser quelque chose comme [MyLabel sizeToFit] de sorte qu'il peut automagiquement définir la largeur / hauteur en fonction de mon mode pause et le contenu.
La solution que je suis à la recherche est de savoir comment définir le point d'origine de UILabel tout en établissant sa largeur / hauteur à un nombre dynamique basé sur le texte figurant sur l'étiquette.
Pas de solution correcte
Autres conseils
Taille de l'étiquette, puis réglez son origine ou le centre:
[myLabel sizeToFit];
CGRect frame = myLabel.frame;
frame.origin = CGPointMake(x, y);
myLabel.frame = frame;
ou
[myLabel sizeToFit];
myLabel.center = CGPointMake(x, y);
Si vous avez déjà le cadre avec la taille dynamique mais que vous souhaitez modifier l'origine:
CGRect myFrame = myLabel.frame;
myFrame.origin = aCGPoint;
myLabel.frame = myFrame;
Si vous devez calculer la taille:
CGSize suggestedSize = [myString sizeWithFont:myLabel.font constrainedToSize:CGSizeMake(FLT_MAX, FLT_MAX) lineBreakMode:UILineBreakModeWordWrap];
Bien sûr, vous pouvez changer le FLT_MAX pour contraindre à une largeur ou heigh spécifique.
EDIT: Je ne savais pas que vous vouliez calculer la taille programatically. Ajout d'une meilleure explication ci-dessus.