2009-09-08 15 views

Odpowiedz

9

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; 
    } 

} 
+0

Działa. Dzięki. Jest jednak drobna literówka: "subViews" w pierwszym wierszu powinno być "subview" :-) – Mayoneez

+1

to właściwie powinno być "subviews"! : D – Mona

9

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; 
    } 
} 
+0

+1, w przypadku prostego i małego kodu. Dzięki :) – mAc

+2

'UITextAlignmentLeft' jest przestarzałe, użyj' NSTextAlignmentLeft' –

1

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.

+1

Pamiętaj, że to już nie działa jak na iOS 10. – DrMickeyLauer