Chcę wiedzieć, jak ustawić wyrównanie delegowanych wiadomości widoku alertu. ktoś ma rozwiązanie, plz odpowiada jakimś kodem.Jak wyrównać wiadomości w UIAlertView?
Odpowiedz
Potrzebujesz subViews alertViewView. Iteruj przez macierz przekrojów, będzie miał jeden element typu UILable. Pobierz tę UILabel z tablicy podglądu i dla niej możesz ustawić właściwość textAlignment.
NSArray *subViewArray = alertView.subviews;
for(int x=0;x<[subViewArray count];x++){
if([[[subViewArray objectAtIndex:x] class] isSubclassOfClass:[UILabel class]])
{
UILabel *label = [subViewArray objectAtIndex:x];
label.textAlignment = UITextAlignmentCenter;
}
}
To tylko nieco uproszczona wersja poprzedniej odpowiedzi, ale lubię prostotę. :)
for (UIView *view in alert.subviews) {
if([[view class] isSubclassOfClass:[UILabel class]]) {
((UILabel*)view).textAlignment = NSTextAlignmentLeft;
}
}
+1, w przypadku prostego i małego kodu. Dzięki :) – mAc
'UITextAlignmentLeft' jest przestarzałe, użyj' NSTextAlignmentLeft' –
poniższy kod nie działa na iOS7, tylko przed iOS7.
for (UIView *view in alert.subviews) {
if([[view class] isSubclassOfClass:[UILabel class]]) {
((UILabel*)view).textAlignment = NSTextAlignmentLeft;
}
}
pytanie Align message in UIAlertView to left in iOS 7 rozwiązać ten problem.
Pamiętaj, że to już nie działa jak na iOS 10. – DrMickeyLauer
Działa. Dzięki. Jest jednak drobna literówka: "subViews" w pierwszym wierszu powinno być "subview" :-) – Mayoneez
to właściwie powinno być "subviews"! : D – Mona