2012-09-20 8 views
13

Ahora que de Apple está a punto de iniciar el envío del iPhone 5, estoy buscando en mis aplicaciones se extienden para que aparezcan en pantalla completa en el iPhone 5 . Ejecuté mis aplicaciones en el simulador, e incluso las que tienen un UITableView se extienden hasta la parte inferior de la pantalla, las barras negras aparecen en la parte superior e inferior de la pantalla.Extender aplicación para iPhone 5 - las mejores prácticas

Aquí está mi pregunta: ¿Cuál es la mejor práctica para extender aplicaciones para el iPhone 5?

¿Debo hacer una punta separada ahora para la pantalla 3,5 y pulgadas, o extender todo en código?

Estoy tratando de hacer de esto una transición lo más suave posible, por lo que apelo al conocimiento de SO para darme una pista sobre cuál es la mejor manera de construir para ambas pantallas.

Respuesta

13

Aprovechar la pantalla completa de 4 "en sus aplicaciones parece ser tan simple como agregar una nueva imagen predeterminada llamada [email protected] con tamaño 640 x 1136. Xcode 4.5 ofrecerá hacer esto automáticamente agregando una imagen en negro del tamaño adecuado y el nombre de su proyecto.

para aplicaciones que utilizan componentes de interfaz de usuario estándar, como las vistas de tabla, las mesas están mágicamente extendidos para llenar la pantalla. he actualizado una aplicación para el trabajo y que era, literalmente, este sencillo, con solo un par de problemas menores relacionados con mi propio código y configuración de UI. Pero, en general, muy fácil.

Contraste esto con otra aplicación en la que trabajo (para mí), que no utiliza ninguno de e componentes de UI estándar a excepción de UIViews. Para manejar pantallas de 3.5 "y 4", he tenido que pasar bastante tiempo refabricando el código que necesita saber el tamaño de la pantalla para varias operaciones de la aplicación. (La aplicación en este caso es más un juego/simulador que, por ejemplo, una aplicación de productividad.)

Por lo tanto, su kilometraje puede variar con respecto al nivel de esfuerzo realmente requerido para soportar la pantalla de 4 ". dependerá de cuán complicada y "no estándar" es su aplicación, como he descubierto.

+0

En la versión para iPhone de mi aplicación Estoy cargando una ONI para mi interfaz, usando una barra de pestañas como la vista de la raíz, y el material de tamaño automático no está haciendo lo correcto en su propio para adaptarse a la pantalla de 4 ". ¿Cómo se puede obtener una UITableView dentro de un UITabBarController para mantenerse fija en la misma posición vertical, y crecer en tamaño vertical exactamente en la cantidad correcta (88pt o 176px)? Mi siguiente pregunta de práctica recomendada sería, ¿es mejor ajustar estas subvistas en el código, o hay alguna forma de hacer que funcione de manera confiable simplemente a través del auto-tamaño en el NIB? –

+0

@ScottLahteine ​​En el caso de la primera aplicación que mencioné, no tuve a algo especial (aparte de agregar la 3ª imagen predeterminada) para obtener las vistas de tabla para cambiar el tamaño de au tomatically. Y estas vistas de tabla están dentro de los controladores de navegación que también forman parte de un controlador de barra de pestañas. Verificaría tus archivos NIB por cualquier rareza de conversión automática. –

+0

Específicamente, necesito una subvista (una UITableView) para estar siempre a 35pt desde la parte superior, y su altura debe estirarse, por lo que su parte inferior siempre está a 108pt de las pestañas inferiores, y una segunda subvista (108pt de altura) permanecerá anclada justo arriba de las pestañas. ¿Qué dimensiones deben tener las subvistas de la barra de pestañas como punto de partida? ¿Importa? Espero que una sub-vista fijada en la parte inferior de la vista de raíz permanezca fijada justo encima de las pestañas, y este parece ser el comportamiento formal, ya que me meto con eso ahora. La viga en I parece preservar la distancia original. Ah, todo está cayendo en su lugar ahora ... –

6

Al actualizar una aplicación existente para la pantalla grande de iphone 5, también puede encontrar que la parte inferior de la pantalla no está " clicable ". Por ejemplo, si tiene una barra de herramientas en la parte inferior de la pantalla, esa barra de herramientas se mostraría correctamente, pero los botones no reaccionarían al tacto. Si este es el caso, debe decirle a la aplicación que la ventana está usando pantalla completa.

Si tiene MainWindow.xib, ábralo, seleccione window y en el inspector de atributos asegúrese de que esté marcada "Pantalla completa al iniciar".

Si usted no tiene MainWindow.xib en su proyecto (y la mayoría de los proyectos más recientes no), entonces es necesario añadir una línea adicional en el applicationDidFinishLaunching de su aplicación delegado:

- (void)applicationDidFinishLaunching:(UIApplication *)application { 

    [window setFrame:[[UIScreen mainScreen] bounds]]; 
    ... 
} 

lo puse al comienzo del método. Trabajado como un encanto.

+0

En mi juego GL11 tuve que configurar el atributo "Pantalla completa al inicio", antes de que la ventana se extendiera para llenar la pantalla (sin esta configuración de cambio de tamaño automático no hubo diferencia). También uso MainWindow.xib, del proyecto GLES2Sample de Apple. – arberg

3

Va a encontrar este camino con el simulador de XCode-> Targets-> Summary-> iPhone/iPod implementación de Información (la retina de 4 pulgadas)

Es necesario agregar una imagen por defecto con el tamaño de 640 x 1136 .

aplicación de este código en su archivo AppDelegate

mainWindow = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; 

mainWindow.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth; 

Usted recibirá el tamaño de la pantalla principal de su ventana. una cosa más cada vez que desee comprobar en el archivo de clase sólo tiene que añadir este código

if ([UIScreen mainScreen].bounds.size.height > 500.0f) 

Para su controlador de vista sólo tiene que añadir una propiedad autoresizingMask

self.view.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth; 

Esto funciona muy bien para mí.

Cuestiones relacionadas