ios iphone ios8 iphone-6

ios - ¿Cómo creo imágenes de lanzamiento para iPhone 6/6 Plus Landscape Only Apps?



launch screen xcode (11)

El patrón ha cambiado para el iPhone 6, etc.

iPhone 6 ( 750x1334 ):

Predeterminado-375w-667h@2x~iphone.png

iPhone 6 Plus: ( 1242x2208 )

Predeterminado-414w-736h@3x~iphone.png

[email protected] (para paisaje)

Tenga en cuenta que si es compatible con iPad, debe cambiar el nombre de las imágenes predeterminadas de su iPad para agregar ~ ipad, por ejemplo, Default-Portrait ~ ipad.png para evitar que el 6 plus las tome porque anulan la imagen 3x.

Tengo una aplicación de solo paisaje existente para la que estoy tratando de agregar soporte para iPhone 6 / iPhone 6 Plus. Cuando era compatible con iOS 6/7 simplemente utilicé las imágenes verticales de lanzamiento con nombre predeterminado con una imagen horizontal girada en vertical (es decir, para pantallas de 4 "creé un paisaje de 1136x640 y luego giré para crear una imagen de lanzamiento de 640 × 1136).

Estoy tratando de hacer que algo funcione para iOS 8 y iPhone 6 / 6+ y aún no se me ocurre algo que funcione. Aquí hay algunas cosas que he probado:

  1. Siga el patrón para la convención de imagen de inicio de pantalla de 4 ". Creé las imágenes [email protected] y [email protected]. Esto engañó al simulador para que se ejecutara con la resolución adecuada de iPhone 6/6 + pero al iniciar, Se utiliza la imagen de inicio de pantalla de 4 ", no las nuevas que creé.
  2. Utilice un catálogo de activos: creo imágenes de lanzamiento de retratos para iPhone 6 y iPhone 6 Plus en un activo de LaunchImages, así como en uno horizontal para iPhone 6 Plus. El iPhone 6 Plus funciona, pero el iPhone 6 solo muestra una pantalla en negro. (No hay forma de crear una imagen de lanzamiento horizontal de iPhone 6 en un catálogo de activos)
  3. Especifique la matriz UILaunchImages en Info.plist con entradas para todos los tamaños de pantalla (consulte la referencia https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html#//apple_ref/doc/uid/TP40009252-SW28 ). Obtengo resultados similares a un Catálogo de activos aquí. Puedo hacer funcionar el iPhone 6 Plus horizontal pero no el iPhone 6 horizontal.

Encontré una solución alternativa que hace que las imágenes de lanzamiento solo aparezcan en iOS 8 GM. Terminé usando la matriz UILaunchImages en Info.plist. El truco es hacer que se muestre una imagen que no sea explícitamente compatible con horizontal (iPhone 4 / 4S, iPhone 5 / 5S / 5C, iPhone 6) que necesita especificar entradas duplicadas. Vea mi ejemplo a continuación. Esto es para una aplicación de teléfono solo horizontal que admite ambas orientaciones para iPad. iOS 7 recurrirá a los nombres de imagen predeterminados.

Todas las imágenes de lanzamiento de iPhone deben girarse en orientación vertical como de costumbre, EXCEPTO para la imagen de lanzamiento de iPhone 6 Plus. Admite de forma nativa imágenes de inicio de orientación horizontal, por lo que debe dejar su imagen de inicio en orientación horizontal.

Aquí hay partes relevantes de su Info.plist:

<key>UILaunchImages</key> <array> <dict> <key>UILaunchImageMinimumOSVersion</key> <string>8.0</string> <key>UILaunchImageName</key> <string>Default</string> <key>UILaunchImageOrientation</key> <string>Portrait</string> <key>UILaunchImageSize</key> <string>{320, 480}</string> </dict> <dict> <key>UILaunchImageMinimumOSVersion</key> <string>8.0</string> <key>UILaunchImageName</key> <string>Default</string> <key>UILaunchImageOrientation</key> <string>Landscape</string> <key>UILaunchImageSize</key> <string>{320, 480}</string> </dict> <dict> <key>UILaunchImageMinimumOSVersion</key> <string>8.0</string> <key>UILaunchImageName</key> <string>Default-568h</string> <key>UILaunchImageOrientation</key> <string>Portrait</string> <key>UILaunchImageSize</key> <string>{320, 568}</string> </dict> <dict> <key>UILaunchImageMinimumOSVersion</key> <string>8.0</string> <key>UILaunchImageName</key> <string>Default-568h</string> <key>UILaunchImageOrientation</key> <string>Landscape</string> <key>UILaunchImageSize</key> <string>{320, 568}</string> </dict> <dict> <key>UILaunchImageMinimumOSVersion</key> <string>8.0</string> <key>UILaunchImageName</key> <string>Default-667h</string> <key>UILaunchImageOrientation</key> <string>Portrait</string> <key>UILaunchImageSize</key> <string>{375, 667}</string> </dict> <dict> <key>UILaunchImageMinimumOSVersion</key> <string>8.0</string> <key>UILaunchImageName</key> <string>Default-667h</string> <key>UILaunchImageOrientation</key> <string>Landscape</string> <key>UILaunchImageSize</key> <string>{375, 667}</string> </dict> <dict> <key>UILaunchImageMinimumOSVersion</key> <string>8.0</string> <key>UILaunchImageName</key> <string>Default-736h</string> <key>UILaunchImageOrientation</key> <string>Portrait</string> <key>UILaunchImageSize</key> <string>{414, 736}</string> </dict> <dict> <key>UILaunchImageMinimumOSVersion</key> <string>8.0</string> <key>UILaunchImageName</key> <string>Default-736h</string> <key>UILaunchImageOrientation</key> <string>Landscape</string> <key>UILaunchImageSize</key> <string>{414, 736}</string> </dict> <dict> <key>UILaunchImageMinimumOSVersion</key> <string>8.0</string> <key>UILaunchImageName</key> <string>Default-Portrait</string> <key>UILaunchImageOrientation</key> <string>Portrait</string> <key>UILaunchImageSize</key> <string>{768, 1024}</string> </dict> <dict> <key>UILaunchImageMinimumOSVersion</key> <string>8.0</string> <key>UILaunchImageName</key> <string>Default-Landscape</string> <key>UILaunchImageOrientation</key> <string>Landscape</string> <key>UILaunchImageSize</key> <string>{768, 1024}</string> </dict> </array>


Este es un seguimiento de la respuesta de @AlexArgo que lo extiende para que las aplicaciones compatibles con iOS 9 solo en modo horizontal muestren imágenes de lanzamiento apropiadas en iPhones iOS 9. Al igual que con esa respuesta, no se requiere ningún catálogo de activos, guión gráfico o xib.

Sin estas adiciones, el comportamiento que vimos fue que al lanzar nuestra aplicación solo para paisajes en un iPhone iOS 9 se mostraba la misma imagen que para iOS 8, pero la imagen se giraba 90 grados en sentido horario y se distorsionaba al estirarse a las dimensiones de la orientación opuesta .

Pre-arreglar la pantalla de inicio de iPhone iOS 9:

Hay 2 partes en esta solución:

  1. Agregue los siguientes elementos de iOS 9 a la matriz UILaunchImages su UILaunchImages antes de los elementos de iOS 8 de la respuesta de @AlexArgo.
  2. Agregue las nuevas imágenes de inicio a las que se hace referencia en los siguientes elementos de iOS 9 (por ejemplo, Default-iOS9-568h ) a su aplicación. Las nuevas imágenes de lanzamiento son imágenes reales de orientación "horizontal" (más anchas que altas), a diferencia de las imágenes a las que hacen referencia los elementos iOS 8 de @AlexArgo que comenzaron como imágenes horizontales pero luego se giraron a la orientación vertical antes de agregarse a la aplicación. Tenga en cuenta que ambos conjuntos de imágenes deben permanecer en la aplicación para que esta solución funcione en iOS 8 y 9 simultáneamente.

    <key>UILaunchImages</key> <array> <dict> <key>UILaunchImageMinimumOSVersion</key> <string>9.0</string> <key>UILaunchImageName</key> <string>Default-iOS9</string> <key>UILaunchImageOrientation</key> <string>Landscape</string> <key>UILaunchImageSize</key> <string>{320, 480}</string> </dict> <dict> <key>UILaunchImageMinimumOSVersion</key> <string>9.0</string> <key>UILaunchImageName</key> <string>Default-iOS9-568h</string> <key>UILaunchImageOrientation</key> <string>Landscape</string> <key>UILaunchImageSize</key> <string>{320, 568}</string> </dict> <dict> <key>UILaunchImageMinimumOSVersion</key> <string>9.0</string> <key>UILaunchImageName</key> <string>Default-iOS9-667h</string> <key>UILaunchImageOrientation</key> <string>Landscape</string> <key>UILaunchImageSize</key> <string>{375, 667}</string> </dict> ...(pre-iOS 9 items)... </array>

Pantalla de inicio de iPhone iOS 9 posterior a la reparación:


Lo que he hecho es cambiar mi proyecto para que NO use un catálogo de activos para las imágenes de lanzamiento, y use la técnica anterior para iOS7 y versiones anteriores. Esto hace que las imágenes de lanzamiento funcionen para iOS7 y versiones anteriores.

Para que también funcionen para iOS8, de modo que pueda obtener la resolución correcta y que su aplicación se reconozca como creada para el nuevo iPhone 6 / +, también debe crear un nuevo LaunchImage XIB y decirle a Xcode que lo use.

Lo que parece suceder es que al iniciar la aplicación en un dispositivo iOS8 se usa la nueva técnica XIB, y al iniciarla en un dispositivo iOS7 o anterior se usan las imágenes que has llegado a conocer y amar.

Esto para mí parece funcionar. Es feo IMO, pero funciona.

Espero que esto ayude a algunas personas.


Los siguientes pasos me funcionaron:

  1. Agregue las imágenes al proyecto (directorio raíz o carpeta de Recursos) con la siguiente nominación (las describiré en las imágenes de lanzamiento de Portrait): Default.png (3.5 pulgadas), [email protected] (4 pulgadas), Default- [email protected] (iPhone 6), [email protected] (iPhone 6plus).
  2. Vaya a la configuración de destino, los iconos de la aplicación y las imágenes de lanzamiento en la pestaña General -> Configurar la fuente de imagen de lanzamiento para que no use el catálogo de activos (''No usar catálogos de activos'').
  3. Elimine el recurso LaunchImage de su recurso de imagen principal
  4. Vaya a la configuración de destino, los iconos de la aplicación y las imágenes de inicio en la pestaña General -> Establecer la fuente de imagen de inicio para usar el catálogo de activos
  5. El XCode 6 le preguntará sobre la migración de activos de imagen de las imágenes existentes. Simplemente haga clic en ''Migrar''.

Y funcionó para mí para cada tipo de dispositivos en iOS7, iOS8. Nota: Si marca el nuevo activo LaunchImage, puede ver que es realmente extraño. Parece contener solo unas pocas imágenes sin las imágenes con resolución iPhone6 ​​o iPhone 6plus.


Para iniciar su aplicación en modo horizontal, edite su archivo Info.plist para agregar la clave UIInterfaceOrientation con el valor apropiado (UIInterfaceOrientationLandscapeRight o UIInterfaceOrientationLandscapeLeft), como se indica a continuación. Esto proporciona una pista al sistema para establecer la orientación de la barra de estado de manera adecuada en el momento del lanzamiento.

Listado 1: Inicio de su aplicación en modo horizontal

<key>UIInterfaceOrientation</key> <string>UIInterfaceOrientationLandscapeRight</string>

para más información haga clic aquí


Para todos los iPhones, excepto el plus, no hay una pantalla de inicio separada para aplicaciones de solo paisaje. Establece la orientación en el plist como lo describió Deepak, y luego configura su pantalla de inicio vertical en la versión girada de su pantalla de inicio horizontal.

Así es como siempre ha sido, y lo único que ha cambiado es que el plus ahora es compatible con una pantalla de inicio horizontal separada y distinta. Todos los demás dispositivos solo admiten pantallas de inicio de retrato, independientemente de la orientación inicial de su aplicación.


Para trabajar con ipad (modo horizontal y vertical), debe agregar la clave ipad UILaunchImages ~ en su info.plist:

<key>UILaunchImages~ipad</key> <array> <dict> <key>UILaunchImageMinimumOSVersion</key> <string>7.0</string> <key>UILaunchImageName</key> <string>Default-Landscape</string> <key>UILaunchImageOrientation</key> <string>Landscape</string> <key>UILaunchImageSize</key> <string>{768, 1024}</string> </dict> <dict> <key>UILaunchImageMinimumOSVersion</key> <string>7.0</string> <key>UILaunchImageName</key> <string>Default-Portrait</string> <key>UILaunchImageOrientation</key> <string>Portrait</string> <key>UILaunchImageSize</key> <string>{768, 1024}</string> </dict> <dict> <key>UILaunchImageMinimumOSVersion</key> <string>7.0</string> <key>UILaunchImageName</key> <string>Default-Landscape</string> <key>UILaunchImageOrientation</key> <string>Landscape</string> <key>UILaunchImageSize</key> <string>{748, 1024}</string> </dict> <dict> <key>UILaunchImageMinimumOSVersion</key> <string>7.0</string> <key>UILaunchImageName</key> <string>Default-Portrait</string> <key>UILaunchImageOrientation</key> <string>Portrait</string> <key>UILaunchImageSize</key> <string>{768, 1004}</string> </dict> </array>


Si usa solo Images.xassets, el "Archivo de pantalla de inicio" debe estar vacío. Me ayudó.


solo agrega [email protected], luego también se arreglará para Landscape. También tengo una aplicación solo para paisajes para iPhone 6 y iPhone 6 Plus, ¡y funciona sin problemas!