2009-09-08 18 views

risposta

9

È necessario ottenere le viste secondarie dell'avviso. Scorrendo l'array di sottomenu, avremo un elemento di tipo UILable. Ottieni questo UILabel dall'array subview e per questo puoi impostare la proprietà 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

Lavori. Grazie. C'è un piccolo refuso, però: "subViews" sulla prima riga dovrebbe essere "subview" :-) – Mayoneez

+1

in realtà dovrebbe essere "sottoview"! : D – Mona

9

Questa è solo una versione leggermente semplificata della risposta precedente ma mi piace mantenere le cose semplici. :)

for (UIView *view in alert.subviews) { 
    if([[view class] isSubclassOfClass:[UILabel class]]) { 
     ((UILabel*)view).textAlignment = NSTextAlignmentLeft; 
    } 
} 
+0

+1, per un codice semplice e piccolo. Grazie :) – mAc

+2

'UITextAlignmentLeft' è deprecato, usa' NSTextAlignmentLeft' –

1

il codice seguente non funziona su iOS7, solo prima di iOS7.

for (UIView *view in alert.subviews) { 
    if([[view class] isSubclassOfClass:[UILabel class]]) { 
     ((UILabel*)view).textAlignment = NSTextAlignmentLeft; 
    } 
} 

la questione Align message in UIAlertView to left in iOS 7 risolvere questo problema.

+1

Nota che questo non funziona più come per iOS 10. – DrMickeyLauer