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?

StackOverflow https://stackoverflow.com/questions/929014

  •  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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top