El sitio web de Apple afirma que la resolución es 1080p: 1920 x 1080
Sin embargo, la pantalla de inicio requerida por Xcode (8.0 GM lanzado hoy) es 2208 x 1242.
¿Quién tiene la razón?
ios
xcode
ios-simulator
iphone-6
iphone-6-plus
JasonGenX
fuente
fuente
Respuestas:
El iPhone 6+ se renderiza internamente utilizando activos @ 3x a una resolución virtual de 2208 × 1242 (con 736x414 puntos), luego se muestrea para mostrar. Lo mismo que usar una resolución escalada en una MacBook Retina: les permite alcanzar un múltiplo integral para activos de píxeles mientras que, por ejemplo, el texto de 12 puntos se ve del mismo tamaño en la pantalla.
Entonces, sí, las pantallas de inicio deben ser de ese tamaño.
Las matemáticas:
Los 6, los 5, los 5, los 4 y los 4 tienen 326 píxeles por pulgada, y usan activos @ 2x para mantener los aproximadamente 160 puntos por pulgada de todos los dispositivos anteriores.
El 6+ es 401 píxeles por pulgada. Por lo tanto, hipotéticamente necesitaría aproximadamente 2.46x activos. En cambio, Apple utiliza activos @ 3x y reduce la producción completa a aproximadamente el 84% de su tamaño natural.
En la práctica, Apple ha decidido ir con más del 87%, convirtiendo el 1080 en 1242. Sin duda, fue encontrar algo lo más cercano posible al 84% que todavía produjera tamaños integrales en ambas direcciones: 1242/1080 = 2208/1920 exactamente , mientras que si hubiera convertido el 1080 en, digamos, 1286, de alguna manera necesitaría renderizar 2286.22 píxeles verticalmente para escalar bien.
fuente
[UIScreen mainScreen].bounds.size.height
devuelve 736 en el simulador de iPhone 6+ cuando está en vertical. Este es el valor 2208 dividido por la escala de 3. El ancho es 414.La respuesta es que las aplicaciones más antiguas se ejecutan en modo zoom 2208 x 1242. Pero cuando se crea una aplicación para los nuevos teléfonos, las resoluciones disponibles son: Super Retina HD 5.8 (iPhone X) 1125 x 2436 (458ppi) , Retina HD 5.5 ( iPhone 6, 7, 8 Plus ) 1242 x 2208 y Retina HD 4.7 ( iPhone 6 ) 750 x 1334 . Esto está causando la confusión mencionada en la pregunta. Para crear aplicaciones que utilicen el tamaño de pantalla completa de los nuevos teléfonos, agregue LaunchImages en los tamaños: 1125 x 2436, 1242 x 2208, 2208 x 1242 y 750 x 1334.
Actualizado para los nuevos iPhones 11, 11 Pro, 11 Pro Max
Tamaño para iPhone 11 Pro Max con escala @ 3x , espacio de coordenadas: 414 x 896 puntos y 1242 x 2688 píxeles, 458 ppi, el tamaño físico del dispositivo es 3.06 x 6.22 o 77.8 x 158.0 mm. Pantalla Super Retina XDR de 6.5 ".
Tamaño para iPhone 11 Pro con escala @ 3x , espacio de coordenadas: 375 x 812 puntos y 1125 x 2436 píxeles, 458 ppi, el tamaño físico del dispositivo es 2.81 x 5.67 o 71.4 x 144.0 mm. Pantalla Super Retina XDR de 5.8 ".
Tamaño para iPhone 11 con escala @ 2x , espacio de coordenadas: 414 x 896 puntos y 828 x 1792 píxeles, 326 ppi, el tamaño físico del dispositivo es 2.98 x 5.94 in o 75.7 x 150.9 mm. Pantalla Liquid Retina HD de 6.1 ".
Tamaño para iPhone X🅂 Max con escala @ 3x (nombre de Apple: pantalla Super Retina HD 6.5 " ), espacio de coordenadas: 414 x 896 puntos y 1242 x 2688 píxeles, 458 ppi, el tamaño físico del dispositivo es 3.05 x 6.20 o 77.4 x 157.5 mm.
Tamaño para iPhone X🅁 con escala @ 2x (nombre de Apple: pantalla Super Retina HD de 6.1 " ), espacio de coordenadas: 414 x 896 puntos y 828 x 1792 píxeles, 326 ppi, el tamaño físico del dispositivo es 2.98 x 5.94 in o 75.7 x 150.9 mm .
Tamaño para iPhone X🅂 y iPhone X con escala @ 3x (nombre de Apple: pantalla Super Retina HD 5.8 " ), espacio de coordenadas: 375 x 812 puntos y 1125 x 2436 píxeles, 458 ppi, el tamaño físico del dispositivo es 2.79 x 5.65 in o 70.9 x 143,6 mm.
Tamaño para iPhone 6, 6S, 7 y 8 con escala @ 3x (nombre de Apple: Retina HD 5.5 ), espacio de coordenadas: 414 x 736 puntos y 1242 x 2208 píxeles, 401 ppi, el tamaño físico de la pantalla es 2.7 x 4.8 in o 68 x 122 mm . Cuando se ejecuta en modo Zoomed, es decir, sin las nuevas imágenes de lanzamiento o elegidas en la configuración del iPhone 6 Plus, la escala nativa es de 2,88 y la pantalla es de 320 x 568 puntos, que es el tamaño nativo del iPhone 5:
Tamaño para iPhone 6 y iPhone 6S con escala @ 2x (nombre de Apple: Retina HD 4.7 ), espacio de coordenadas: 375 x 667 puntos y 750 x 1334 píxeles, 326 ppi, el tamaño físico de la pantalla es de 2.3 x 4.1 pulgadas o 58 x 104 mm . Cuando se ejecuta en modo zoom, es decir, sin las nuevas imágenes de lanzamiento, la pantalla es de 320 x 568 puntos, que es el tamaño nativo del iPhone 5:
Y el iPhone 5 en comparación es 640 x 1136, iPhone 4 640 x 960.
Aquí está el código que usé para verificar esto (tenga en cuenta que nativeScale solo se ejecuta en iOS 8):
Nota: Cargue LaunchImages; de lo contrario, la aplicación se ejecutará en modo Zoom y no mostrará la escala o los tamaños de pantalla correctos. En el modo Zoom,
nativeScale
yscale
no será lo mismo. En un dispositivo real, la escala puede ser 2.608 en el iPhone 6 Plus, incluso cuando no se ejecuta en modo Zoomed, pero mostrará una escala de 3.0 cuando se ejecuta en el simulador.fuente
La resolución real / física del iPhone 6 Plus es 1920x1080, pero en Xcode configura su interfaz para una resolución de 2208x1242 (736x414 puntos) y en el dispositivo se reduce automáticamente a 1920x1080 píxeles.
Referencia rápida de resoluciones de iPhone:
fuente
Probablemente debería dejar de usar imágenes de lanzamiento en iOS 8 y usar un guión gráfico o nib / xib.
En Xcode 6 , abra el
File
menú y elijaNew
⟶File...
⟶iOS
⟶User Interface
⟶Launch Screen
.Luego abra la configuración de su proyecto haciendo clic en él.
En la
General
ficha, en la sección llamadaApp Icons and Launch Images
, establecer elLaunch Screen File
que los archivos que acaba de crear (esto se transformaráUILaunchStoryboardName
eninfo.plist
).Tenga en cuenta que, por el momento, el simulador solo mostrará una pantalla en negro, por lo que debe realizar una prueba en un dispositivo real .
Agregar un archivo xib de Launch Screen a su proyecto:
Configurar su proyecto para usar el archivo xib de Launch Screen en lugar del Catálogo de activos:
fuente
En el dispositivo físico, los límites de la pantalla principal del iPhone 6 Plus son 2208x1242 y nativeBounds es 1920x1080 . Hay una escala de hardware involucrada para cambiar el tamaño de la pantalla física.
En el simulador, los límites de la pantalla principal del iPhone 6 Plus y los NativeBounds son 2208x1242.
En otras palabras ... Los videos, OpenGL y otras cosas basadas en
CALayers
ese trato con píxeles tratarán con el búfer de cuadro real de 1920x1080 en el dispositivo (o 2208x1242 en sim). Las cosas relacionadas con los puntos seUIKit
tratarán con los límites de 2208x1242 (x3) y se escalarán según corresponda en el dispositivo.El simulador no tiene acceso al mismo hardware que está haciendo la escala en el dispositivo y no hay mucho beneficio en simularlo en el software, ya que producirían resultados diferentes que el hardware. Por lo tanto, tiene sentido establecer la
nativeBounds
pantalla principal de un dispositivo simulado en los límites de la pantalla principal del dispositivo físico.iOS 8 agregó API a
UIScreen
(nativeScale
ynativeBounds
) para permitir que un desarrollador determine la resolución delCADisplay
correspondiente alUIScreen
.fuente
Para aquellos como yo que se preguntan cómo se tratan las aplicaciones heredadas, realicé algunas pruebas y cálculos sobre el tema.
Gracias a la sugerencia de @ hannes-sverrisson, comencé asumiendo que una aplicación heredada se trata con una vista de 320x568 en iPhone 6 y iPhone 6 plus.
La prueba se realizó con un fondo negro simple
[email protected]
con un borde blanco. El fondo tiene un tamaño de 640x1136 píxeles y es negro con un borde blanco interno de 1 píxel.A continuación se muestran las capturas de pantalla proporcionadas por el simulador:
En la captura de pantalla del iPhone 6, podemos ver un margen de 1 píxel en la parte superior e inferior del borde blanco, y un margen de 2 píxeles en la captura de pantalla del iPhone 6 plus. Esto nos da un espacio utilizado de 1242x2204 en iPhone 6 plus, en lugar de 1242x2208, y 750x1332 en el iPhone 6, en lugar de 750x1334.
Podemos suponer que esos píxeles muertos deben respetar la relación de aspecto del iPhone 5:
En segundo lugar, es importante saber que los recursos @ 2x se escalarán no solo en el iPhone 6 plus (que espera activos @ 3x), sino también en el iPhone 6. Esto probablemente se deba a que el hecho de no escalar los recursos habría dado lugar a diseños inesperados, debido a la ampliación de la vista.
Sin embargo, esa escala no es equivalente en ancho y alto. Lo probé con un recurso 264x264 @ 2x. Teniendo en cuenta los resultados, debo suponer que la escala es directamente proporcional a la relación píxeles / puntos.
Es importante tener en cuenta que la escala del iPhone 6 no es igual en ancho y alto (309x310). Esto tiende a confirmar la teoría anterior de que la escala no es proporcional en ancho y alto, sino que utiliza la relación píxeles / puntos.
Espero que esto ayude.
fuente
Echa un vistazo a esta infografía: http://www.paintcodeapp.com/news/iphone-6-screens-demystified
Explica las diferencias entre los antiguos iPhone, iPhone 6 y iPhone 6 Plus. Puede ver la comparación de tamaños de pantalla en puntos, píxeles renderizados y píxeles físicos. También encontrará la respuesta a su pregunta allí:
Actualizar:
Hay una versión actualizada de la infografía mencionada anteriormente. Contiene información más detallada sobre las diferencias de resolución de pantalla y cubre todos los modelos de iPhone hasta ahora, incluidos los dispositivos de 4 pulgadas.
http://www.paintcodeapp.com/news/ultimate-guide-to-iphone-resolutions
fuente
Incluso si generalmente no me gusta el tono del blog Daring Fireball de John Gruber, vale la pena leer su Conjetura de pantalla de iPhone más grande .
Adivinó, pero acertó exactamente la resolución en puntos y en píxeles para ambos modelos, excepto que él (yo tampoco) esperaba que Apple construyera una pantalla física de menor resolución y redujera la escala (los detalles están en la respuesta de @ Tommy).
La esencia de todo es que uno debe dejar de pensar en términos de píxeles y comenzar a pensar en términos de puntos (este ha sido el caso durante bastante tiempo, no es una invención reciente) y el tamaño físico resultante de los elementos de la interfaz de usuario. En resumen, los dos nuevos modelos de iPhone mejoran a este respecto, ya que físicamente la mayoría de los elementos siguen siendo del mismo tamaño, solo puede colocar más de ellos en la pantalla (para cada pantalla más grande puede caber más).
Estoy un poco decepcionado de que no hayan mantenido el mapeo de la resolución interna a la resolución de pantalla real 1: 1 para el modelo más grande.
fuente