Dans iOS – Comment adapter un UILabel à son text, sans changer sa position?

sizeToFit sur un UILabel qui contient du text aligné à droite. Il réduit la hauteur et la largeur du UILabel et adapte le text en haut à gauche du UILabel .

Maintenant … la position de l' UILabel est incorrecte. Comment puis-je faire en sorte que l' UILabel rest dans sa position d'origine (aligné à droite) ou le déplacer pour qu'il apparaisse à sa position d'origine?

Encore une fois, le problème est que la méthode sizeToFit la largeur du côté droit de UILabel . Il traite le text UILabel comme aligné à gauche. Mais mon text est aligné à droite. Donc, la bordure du côté droit de l' UILabel est l'endroit où mon text commence.

Vous vérifiez les largeurs avant et après, puis déplacez le centre de la vue à droite par la différence / 2.

En passant, je pense que la "boîte" (cadre) est rétrécie dans les deux directions, gardant le centre intact.

 @implementation UILabel (Additions) - (void)sizeToFitWithAlignmentRight { CGRect beforeFrame = self.frame; [self sizeToFit]; CGRect afterFrame = self.frame; self.frame = CGRectMake(beforeFrame.origin.x + beforeFrame.size.width - afterFrame.size.width, self.frame.origin.y, self.frame.size.width, self.frame.size.height); } @end