2011-07-28 15 views
7

He creado un UIAlertView personalizado (subclasándolo y jugando con su función show) que tiene algunas subvistas personalizadas y no es de tamaño estándar.Rotar un UIAlertView

Funciona bien cuando lo creo y lo muestro, sin embargo, cuando se gira el dispositivo, la alerta gira y luego vuelve a su tamaño predeterminado.

¿Alguna idea de qué funciones sobrescribir? ¿O debería modificar el UIViewController?

gracias, Peter

+0

bien, descubrí que al restablecer los límites * * * rectángulo en setNeedsDisplay * w orks para restablecer el tamaño ... pero ahora tengo una cadena de eventos bastante extraña cada vez que giro el dispositivo: 1) UIAlertView se muestra correctamente, 2) El UIAlertView se reduce a su tamaño predeterminado 3) El UIAlertView gira 4) El UIAlertView devuelve al tamaño deseado ¿Alguna idea de cómo evitar la reducción durante la animación? –

Respuesta

4

No estoy seguro si la fuerza de rotación del UIAlertView se ajusta a las directrices de Apple interfaz gráfica de usuario, pero se puede girar mediante la definición de la barra de estado (barra de estado y UIAlertView desmenuce)

application.statusBarOrientation = UIInterfaceOrientationLandscapeRight; 
application.statusBarOrientation = UIInterfaceOrientationLandscapeLeft; 

pero UIAlertView es un UIView al igual que muchos otros, a fin de tratar esto:

- (void)didPresentAlertView:(UIAlertView *)alertView 
{ 
    [UIView beginAnimations:@"" context:nil]; 
    [UIView setAnimationDuration:0.1]; 
    alertView.transform = CGAffineTransformRotate(alertView.transform, degreesToRadian(90)); 
    [UIView commitAnimations]; 
} 
+0

Parece que mi pregunta no era lo suficientemente clara ... Mi UIAlertView DOES gira solo, cuando cambia la orientación del dispositivo. El problema es que también cambia de tamaño. –

+0

También estoy enfrentando el mismo problema. – Raxit

+0

Esto no funciona –