iOS 5.UILabel i numberOfLines i sizeToFit:
mam element, który jest UILabel pierwotnie umieszczony w stalówkę. Chcę, aby miejsce docelowe x pozostało niezmienione. Chcę, żeby zajęło 1 linię lub 2 linie. Jeśli masz więcej niż dwie linie, użyj ustawienia podziału linii, aby wyświetlić wielokropek.
używam numberOfLines
mienia i -sizeToFit
Jeżeli ustawić numberOfLines
własność UILabel do 0, to będzie poprawnie zobaczyć, że z jakiegoś tekstu, nie ma wystarczająco dużo miejsca i owinąć go do drugiej linii po wywołaniu -sizeToFit
ale w rzadkim przypadku, gdy linia jest wystarczająco długa, aby rozciągnąć do 3 linii, otrzymuję trzy linie, których nie chcę. Jeśli ustawię właściwość numberOfLines
na 2, to faktycznie rozciąga całą rzecz na jedną linię i wydłuży mój początkowy zestaw ramek w stalówce, aby był znacznie szerszy.
CGRect titleFrame = [[self titleLabel] frame];
[[self titleLabel] setNumberOfLines:0];
[[self titleLabel] setText:newProductTitleText];
[[self titleLabel] sizeToFit];
CGRect newTitleFrame = [[self titleLabel] frame];
CGRect jest właśnie dla mnie, aby móc obliczyć rzeczy po fakcie. Ustawienie numberOfLines
na 0 działa, i nie zmieni oryginalnego origin.x w ramce, i będzie łamać długi tekst na wiele linii, ale nie ograniczy go do 2 linii. Ustawianie numberOfLines
własności do 2, który po Czytam docs firmy Apple
Ta właściwość steruje maksymalną liczbę wierszy do wykorzystania w celu dopasowania tekstu etykiety w jego obwiedni prostokąta. Domyślna wartość tej właściwości to 1. Aby usunąć dowolny limit maksymalny i użyć tyle linii, ile potrzeba, ustaw wartość tej właściwości na 0.
Wygląda na to, że powinienem móc ustawić to na dwa i nadal niech to zadziała. Spodziewam się sizeToFit
rozwijać w pozytywnym kierunku X i Y, gdy rozwija się zmieścić cały tekst, ale rozwija się w złym kierunku X, gdy numberOfLines
jest ustawiona na wartość inną niż 0.
ETA: Opcja „autoSize” rozpórki są ustaw na górze i na lewo, aby naprawić min. x, y.
Dzięki za wszelki wgląd.
Myślę, że ten wątek może pomóc http://stackoverflow.com/questions/5041874/uilabels-sizetofit-sizethatfits-ignore-the-numberoflines-property/13786846 # 13786846 –
To jest stare pytanie i prawdopodobnie nie dotyczy bieżącego iOS, ale nie widzę, jak to jest duplikat. Przeczytałem pytanie, które jest twierdzeniem, że jest to duplikat i jest to inne pytanie.Ten pyta o negatywne X ustawione przez '-sizeToFit', a nie o wyrównanie w pionie tekstu w UILabel. – chadbag