Foros del Web » Programación para mayores de 30 ;) » Programación móvil »

Obtener orientación inicial del iPad / Splash duradero

Estas en el tema de Obtener orientación inicial del iPad / Splash duradero en el foro de Programación móvil en Foros del Web. Buenos días, Es la primera vez que me peleo con XCode, así que estoy completamente verde en el tema. Estoy haciendo una aplicación que simplemente ...
  #1 (permalink)  
Antiguo 28/06/2011, 02:24
 
Fecha de Ingreso: abril-2005
Mensajes: 29
Antigüedad: 19 años, 6 meses
Puntos: 1
Obtener orientación inicial del iPad / Splash duradero

Buenos días,

Es la primera vez que me peleo con XCode, así que estoy completamente verde en el tema.
Estoy haciendo una aplicación que simplemente carga un UIWebView, y este carga una web. El problema es que los fondos que ha de cargar (cosas del diseño, no es cosa mía) ocupan unos 600Kb, por lo que tarda en aparecer. Hago una pantalla de Splash inicial (que también ocupa 800Kb), pero esta solo dura hasta que carga la aplicación, que es medio segundo, y luego aún falta que cargue el contenido del UIWebView. Había pensado en poner una imagen (la misma que el Splash) visible, y al cargar 100% el webview ocultarla, y así simularía que el Splash aguanta hasta que carga el contenido, peeeeero el problema es que no soy capaz de obtener la orientación inicial para mostrar una imagen u otra (Portrait, Landscape). He probado en el viewDidLoad con:

UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation] y
UIInterfaceOrientation orientation = [[UIDevice currentDevice] orientation]
Pero las 2, tanto en simulador como en iPad me devuelven 0. He probado en poner en el .list la orientación inicial, pero sigue sin devolver nada. He hecho mil combinaciones y lo he comparado con todas las constantes posibles (UIDeviceOrientation..., UIInterfaceOrientation...) pero nada, el valor devuelto es 0.

Mi pregunta es...
- Alguna idea de como obtener la orientación inicial, que realmente funcione (me parece algo suficientemente básico como para que no sea tan complicado)
- Alguna forma de que un ImageView tenga 2 imágenes diferentes, según es Landscape o Portrait? (no me sirve al capturar el evento de cambio de orientación, ha de ser al cargar la aplicación inicialmente)
- Alguna forma de aguantar el Splash indefinidamente, y luego ocultarlo manualmente en el evento webViewDidFinishLoad?

(No me sirven soluciones tipo "rebaja el peso de las imágenes y tardará menos" ni cargar la imagen en el webView y luego cambiarla, ya que sería cargar 800Kb vía web y estaríamos aún peor)

Cualquiera de estas 3 soluciones me salvarían la vida, hasta que tenga tiempo de aprender lo suficiente como para hacerlo de manera más elegante.
Cualquier otra aportación o rayo de luz será más que bien recibido.

Muchas gracias por vuestro tiempo.
Salud!!
  #2 (permalink)  
Antiguo 06/08/2011, 02:08
Avatar de DannoFX  
Fecha de Ingreso: agosto-2011
Ubicación: Monterrey
Mensajes: 7
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Obtener orientación inicial del iPad / Splash duradero

Hola,

No se si esto te pueda funcionar. Creo que solo funciona en el dispositivo fisico y no en simulador

En tu viewDidLoad pon

Código PHP:
    [[UIDevice currentDevicebeginGeneratingDeviceOrientationNotifications];
    
UIInterfaceOrientation  orientation=[[UIApplication sharedApplicationstatusBarOrientation];
    
    if (
orientation == UIInterfaceOrientationPortrait)
    {
        
NSLog(@"estoy en vertical");
                
//aqui cargarias tu imagen vertical
    
}
    else if (
orientation == UIInterfaceOrientationLandscapeLeft)
    {
        
NSLog(@"estoy en horizontal a la izquierda");
                
//aqui cargarias tu imagen horizontal
    
}
    else if (
orientation == UIInterfaceOrientationLandscapeRight)
    {
        
NSLog(@"estoy en horizontal hacia la derecha");
                
//aqui cargarias tu imagen horizontal
    
}
    else
    {
        
NSLog(@"estoy seguramente de cabeza");
                
//aqui cargarias tu imagen vertical
    



Tambien recuerda tener sobrecargada esta funcion asi ( en caso de que aceptes todas las orientaciones):

Código PHP:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {

    return 
YES;

Lo segundo que preguntas de tener dos imagenes, pues me temo que si quieres intercalar entre esas dos imagenes dependiendo de la orientatacion forzosamente tendras que utilizar el evento de shouldAutorotateToInterfaceOrientation.


Y me temo que lo tercero no se puede hacer.


Saludos!

Etiquetas: inicial, ipad, splash
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 08:03.