2009-09-08 20 views

Respuesta

9

Necesita obtener subViews de alertViewView. Itere a través de la matriz de subvistas, tendrá un elemento de tipo UILable. Obtenga ese UILabel de la matriz de subvista y para eso puede establecer la propiedad 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

Trabajos. Gracias. Sin embargo, hay un pequeño error tipográfico: "subViews" en la primera línea debería ser "subvista" :-) – Mayoneez

+1

¡en realidad deberían ser "subvistas"! : D – Mona

9

Esta es solo una versión ligeramente simplificada de la respuesta anterior, pero me gusta mantener las cosas simples. :)

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

+1, para un código simple y pequeño. Gracias :) – mAc

+2

'UITextAlignmentLeft' está en desuso, use' NSTextAlignmentLeft' –

1

el código siguiente no funciona en iOS7, solo antes de iOS7.

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

la cuestión Align message in UIAlertView to left in iOS 7 a resolver este problema.

+1

Tenga en cuenta que esto ya no funciona según iOS 10. – DrMickeyLauer