Cómo solucionar problemas de la interfaz de usuario del iPhone en modo Zoom debido a la pantalla de inicio
Fondo
Hace una semana identificamos un problema extraño en el que nuestra aplicación Naukri para iOS se comportaba de manera inesperada en modo Zoom en algunos dispositivos.
La interfaz de usuario se distorsionaba y se apagaba alrededor de la barra de navegación superior y la barra de pestañas inferior al azar.

Problema
Después de revisar varias soluciones y artículos sobre el estado de zoom, observamos que cuando el estado de zoom está habilitado, la aplicación comienza a mostrarse en modo escalado y, dado que nuestra pantalla de inicio no estaba optimizada para pantallas más grandes, teníamos problemas con la interfaz de usuario.
¿Qué es la pantalla de inicio?
Aparece cuando la aplicación se inicia por primera vez y da la impresión de que su aplicación es rápida y receptiva. Después de cargar su aplicación, se reemplazará con la primera pantalla de su aplicación.
Cuando verificamos la lógica de implementación de la imagen de lanzamiento en nuestro proyecto, nos dimos cuenta de que los diferentes tamaños de las imágenes de lanzamiento se agregaron en nuestro archivo xcassets.

Pensamos en eliminarlos y agregar diferentes imágenes solo para probar algunas cosas y luego observamos que agregar la pantalla de inicio de xcassets ha quedado obsoleto.

Solución
Entonces, después de revisar la documentación de Apple, aprendimos las formas correctas de agregar una pantalla de inicio en su aplicación iOS.
https://developer.apple.com/documentation/xcode/specifying-your-apps-launch-screen/
¿Cómo agregar una pantalla de inicio?
Antes de Xcode 6, la única opción que teníamos era proporcionar imágenes estáticas dentro de un catálogo de recursos. Más tarde, con iOS 8, Xcode nos permitió reemplazar la imagen estática con un archivo de guión gráfico. Con el tiempo y las nuevas actualizaciones, se agregaron varias opciones y funciones para la pantalla de inicio.
Para Xcode 12 y superior, hay dos formas de acceder a la pantalla de inicio:
- Usando un guión gráfico (predeterminado), agregado cuando crea un nuevo proyecto
- Usando una
plist
configuración
Usando una plist
configuración puede establecer:
- Una imagen
- Si la imagen de lanzamiento debe respetar las inserciones de área segura
- Un color de fondo
- Visibilidad de la barra de navegación
- Visibilidad de la barra de pestañas
- Visibilidad de la barra de herramientas
- Configuración de la pantalla de inicio por esquema de URL
- En la configuración de su objetivo, seleccione la pestaña Información.
- En la sección Propiedades de destino de iOS personalizadas, expanda la tecla Pantalla de inicio.
- Haga clic en el botón Agregar (+), escriba
UILaunchScreen
y presione Retorno para agregar la tecla de la pantalla de inicio a la lista de propiedades. Si laUILaunchScreen
clave ya está presente, puede omitir este paso. - Seleccione la
UILaunchScreen
clave, haga clic en el botón Agregar (+) y agregue claves adicionales para especificar las opciones de configuración para su pantalla de inicio.

Uso de un archivo de guión gráfico
Si crea su aplicación para iOS a partir de una plantilla de guión gráfico, Xcode agrega un archivo de pantalla de inicio predeterminado, llamado LaunchScreen.storyboard
, a su proyecto. Edite LaunchScreen.storyboard
para configurar su pantalla de inicio.
Si su proyecto no contiene un archivo de pantalla de inicio predeterminado, agregue un archivo de pantalla de inicio y configure el archivo de pantalla de inicio para el objetivo en el editor de proyectos.
- Elija Archivo > Nuevo > Archivo.
- En Interfaz de usuario, seleccione Pantalla de inicio y haga clic en Siguiente.
- Asigne un nombre al archivo de la pantalla de inicio, elija una ubicación, seleccione el destino al que desea agregar el archivo y haga clic en Crear.
- En la configuración de su objetivo, seleccione la pestaña General y busque la sección "Iconos de aplicaciones e imágenes de inicio".
- En el menú emergente Archivo de pantalla de inicio, seleccione el nuevo archivo de pantalla de inicio.

Las pantallas de inicio se almacenan en caché en gran medida en iOS para mejorar el rendimiento. Entonces, para fines de desarrollo y prueba, debe eliminar su aplicación y reiniciar el dispositivo (o simulador).
También puede agregar sleep(5) en didFinishLaunchingWithOptions durante el desarrollo de su pantalla de inicio, un retraso puede ser útil para observar más detenidamente su diseño implementado.
Muchas Gracias Por Leer…!
Referencias:
https://developer.apple.com/documentation/xcode/specifying-your-apps-launch-screen/