Jest niemożliwe, aby wyrównać tekst w UILabel
pionie. Można jednak dynamicznie zmieniać wysokość etykiety za pomocą metody sizeWithFont:
z poziomu NSString
i po prostu ustawić jej wartości x i y zgodnie z potrzebami.
Jako alternatywę można użyć UITextField
. Obsługuje peoperty contentVerticalAlignment
, ponieważ jest podklasą UIControl
. Musisz ustawić jego userInteractionEnabled
na NO
, aby uniemożliwić użytkownikowi wpisywanie tekstu na nim.
EDIT 1
Więc zamiast UILabel, Zrób UITableView jak: -
TableActivityLevel=[[UITableView alloc] initWithFrame:CGRectMake(224, 203, 27, 0) style:UITableViewStylePlain];
TableActivityLevel.delegate=self;
TableActivityLevel.dataSource=self;
TableActivityLevel.autoresizingMask = UIViewAutoresizingFlexibleHeight;
TableActivityLevel.rowHeight = 17;
TableActivityLevel.backgroundColor=[UIColor clearColor];
TableActivityLevel.layer.borderColor = [[UIColor clearColor]CGColor];
TableActivityLevel.separatorStyle = UITableViewCellSeparatorStyleNone;
EDIT 2 Znaleziono metodę używając UILabels zbyt !! :) Sprawdź to ....
UILabel *label1 = [[UILabel alloc]initWithFrame:CGRectMake(0.0, 0.0, 10.0, 100.0)];
[label1 setBackgroundColor:[UIColor clearColor]];
[label1 setNumberOfLines:0];
[label1 setCenter:self.view.center];
[label1 setFont:[UIFont fontWithName:@"Helvetica" size:12.0]];
[label1 setTextColor:[UIColor whiteColor]];
[label1 setTextAlignment:UITextAlignmentCenter];
[label1 setText:@"1 2 3 4 5 6"];
[self.view addSubview:label1];
Nie nazywa się to wyrównaniem, nazywa się to kierunkiem zapisu. Wyrównanie to coś zupełnie innego. FYI Nie sądzę, że istnieje metoda osiągnięcia tego, co chcesz. Może używając CoreText i CoreGraphics, możesz narysować CFStringRef w ten sposób, ale nie używając UILabel. –
Cześć, użyj mojej odpowiedzi To działa dobrze. Proszę skorzystać z przewodnika Referencje –