2011-04-05 11 views
9

Zadzwonię pod sizeToFit na UILabel z tekstem wyrównanym do prawej strony. Zmniejsza on wysokość i szerokość UILabel i dopasowuje tekst do lewej górnej części UILabel.W iOS - Jak dopasować UILabel do tekstu, bez zmiany jego położenia?

Teraz ... pozycja UILabel jest niepoprawna. Jak mogę ustawić UILabel w pierwotnej pozycji (wyrównanie do prawej) lub przesunąć tak, aby pojawił się w pierwotnej pozycji?

Po raz kolejny - problem polega na tym, że metoda sizeToFit zmniejsza szerokość od prawej strony UILabel. Traktuje tekst UILabel jako wyrównany do lewej. Ale mój tekst jest wyrównany do prawej. Tak więc prawa krawędź strony UILabel to miejsce, gdzie zaczyna się mój tekst.

Odpowiedz

3

sprawdzić szerokości przed & po, a następnie przesunąć środek widoku tuż przy różnicy/2.

Nawiasem mówiąc, myślę, że „box” (ramka) skurczył się w obu kierunkach, utrzymując centrum nietknięte.

15
@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 
+0

czysty. dobry pomysł! – Rambatino

Powiązane problemy