Próbuję wcięcia tekstu w UILabel pozostawić margines wokół tekstu pokazujący kolor tła. Zgodnie z sugestią here Mam nadpisane textRectForBounds:limitedToNumberOfLines:
tak:Tekst ULEFabel textRectForBounds nie daje żadnego efektu podczas próby utworzenia marginesu
- (CGRect)textRectForBounds:(CGRect)bounds limitedToNumberOfLines:(NSInteger)numberOfLines
{
CGRect intermediate = CGRectMake(bounds.origin.x+MARGIN,bounds.origin.y+MARGIN,bounds.size.width-2*MARGIN,bounds.size.height-2*MARGIN);
return [super textRectForBounds:intermediate limitedToNumberOfLines:numberOfLines];
}
Ale bez względu na to, co robię, tekst kończy się mocno do lewej krawędzi prostokąta. Wygląda na to, że rysunek ignoruje początkową część zwróconego CGRect (chociaż wydaje się, że respektuje część szerokości, tak jakbym zmniejszył do szerokości pośredniej do np. bounds.size.width-200
, to znaczy, że return textRectForBounds jest odpowiednio wąski i tekst jest narysowany w długiej, chudej kolumnie).
A więc: co jeszcze muszę zrobić z UILabel
, aby rysunek był zgodny z oryginałem origin.x i origin.y pod adresem textForRectBounds
-recturned-rect? Wolę nie zastępować UILabel
's drawTextInRect
, jeśli mogę pomóc.
Aktualizacja: To było dawno temu i nie pamiętam dokładnie, dlaczego inne pytanie nie zadziałało dla mnie. Wierzę, że to dlatego, że próbowałem mieć UILabel
z wieloma liniami, a rozwiązanie here nie działało w takim przypadku.
Czy próbowałeś zwrócić bezpośrednio "pośrednie"? –
tak, ale to nie ma znaczenia. – damian