O site da Apple afirma que a resolução é 1080p: 1920 x 1080
No entanto, a tela de lançamento exigida pelo Xcode (8.0 GM lançada hoje) é 2208 x 1242.
Quem está certo?
ios
xcode
ios-simulator
iphone-6
iphone-6-plus
JasonGenX
fonte
fonte
Respostas:
O iPhone 6+ é renderizado internamente usando recursos @ 3x em uma resolução virtual de 2208 × 1242 (com 736x414 pontos) e, em seguida, mostra isso para exibição. O mesmo que usar uma resolução em escala em um MacBook Retina - permite que eles atinjam um múltiplo integral para recursos de pixel, enquanto ainda têm, por exemplo, texto de 12 pt com a mesma aparência na tela.
Então, sim, as telas de lançamento precisam ter esse tamanho.
As matemáticas:
O 6, o 5s, o 5, o 4s e o 4 são todos 326 pixels por polegada e usam recursos @ 2x para manter os aproximadamente 160 pontos por polegada de todos os dispositivos anteriores.
O 6+ é de 401 pixels por polegada. Por isso, hipoteticamente seria necessário aproximadamente @ 2,46x ativos. Em vez disso, a Apple usa recursos @ 3x e reduz a produção completa para cerca de 84% do seu tamanho natural.
Na prática, a Apple decidiu ir com mais de 87%, transformando o 1080 em 1242. Sem dúvida, foi encontrar algo o mais próximo possível de 84% que ainda produzia tamanhos integrais nas duas direções - 1242/1080 = 2208/1920 exatamente , enquanto que se você transformasse o 1080 em, digamos, 1286, seria necessário renderizar 2286,22 pixels verticalmente para dimensionar bem.
fonte
[UIScreen mainScreen].bounds.size.height
retorna 736 no simulador do iPhone 6+ quando em modo retrato. Este é o valor 2208 dividida pela escala de 3. A largura é 414.A resposta é que aplicativos mais antigos são executados no modo de zoom 2208 x 1242. Mas quando um aplicativo é criado para os novos telefones, as resoluções disponíveis são: Super Retina HD 5.8 (iPhone X) 1125 x 2436 (458ppi) , Retina HD 5.5 ( iPhone 6, 7, 8 Plus ) 1242 x 2208 e Retina HD 4.7 ( iPhone 6 ) 750 x 1334 . Isso está causando a confusão mencionada na pergunta. Para criar aplicativos que usam o tamanho de tela inteira dos novos telefones, adicione o LaunchImages nos tamanhos: 1125 x 2436, 1242 x 2208, 2208 x 1242 e 750 x 1334.
Atualizado para os novos iPhones 11, 11 Pro, 11 Pro Max
Tamanho para iPhone 11 Pro Max com escala @ 3x , espaço de coordenadas: 414 x 896 pontos e 1242 x 2688 pixels, 458 ppi, o tamanho físico do dispositivo é 3,06 x 6,22 pol ou 77,8 x 158,0 mm. Tela Super Retina XDR de 6,5 ".
Tamanho do iPhone 11 Pro com escala 3x , espaço de coordenadas: 375 x 812 pontos e 1125 x 2436 pixels, 458 ppi, o tamanho físico do dispositivo é 2,81 x 5,67 pol ou 71,4 x 144,0 mm. Tela Super Retina XDR de 5,8 ".
O tamanho do iPhone 11 com escala 2x , espaço de coordenadas: 414 x 896 pontos e 828 x 1792 pixels, 326 ppi, o tamanho físico do dispositivo é de 2,98 x 5,94 ou 75,7 x 150,9 mm. Tela Retina HD de 6,1 "líquida.
Tamanho para iPhone X🅂 Max com escala @ 3x (nome da Apple: tela Super Retina HD 6.5 " ), espaço de coordenadas: 414 x 896 pontos e 1242 x 2688 pixels, 458 ppi, o tamanho físico do dispositivo é 3,05 x 6,20 ou 77,4 x 157,5 milímetros.
Tamanho para iPhone X🅁 com escala @ 2x (nome da Apple: tela Super Retina HD de 6,1 " ), espaço de coordenadas: 414 x 896 pontos e 828 x 1792 pixels, 326 ppi, o tamanho físico do dispositivo é 2,98 x 5,94 ou 75,7 x 150,9 mm .
Tamanho para iPhone X🅂 e iPhone X com escala @ 3x (nome da Apple: tela Super Retina HD 5,8 " ), espaço de coordenadas: 375 x 812 pontos e 1125 x 2436 pixels, 458 ppi, o tamanho físico do dispositivo é 2,79 x 5,65 ou 70,9 x 143,6 mm.
Tamanho para iPhone 6, 6S, 7 e 8 com escala @ 3x (nome da Apple: Retina HD 5.5 ), espaço de coordenadas: 414 x 736 pontos e 1242 x 2208 pixels, 401 ppi, o tamanho físico da tela é de 2,7 x 4,8 pol ou 68 x 122 mm . Ao executar no Modo Zoom, ou seja, sem a nova LaunchImages ou a opção Configuração no iPhone 6 Plus, a escala nativa é de 2,88 e a tela tem 320 x 568 pontos, que é o tamanho nativo do iPhone 5:
Tamanho para iPhone 6 e iPhone 6S com escala @ 2x (nome da Apple: Retina HD 4.7 ), espaço de coordenadas: 375 x 667 pontos e 750 x 1334 pixels, 326 ppi, o tamanho físico da tela é de 2,3 x 4,1 ou 58 x 104 mm . Ao executar no Modo Zoom, ou seja, sem o novo LaunchImages, a tela tem 320 x 568 pontos, que é o tamanho nativo do iPhone 5:
E o iPhone 5 para comparação é 640 x 1136, iPhone 4 640 x 960.
Aqui está o código que eu usei para verificar isso (observe que nativeScale é executado apenas no iOS 8):
Nota: Carregue o LaunchImages, caso contrário, o aplicativo será executado no Modo de Zoom e não mostrará a escala ou os tamanhos de tela corretos. No Modo Zoom, o
nativeScale
escale
não será o mesmo. Em um dispositivo real, a escala pode ser 2,608 no iPhone 6 Plus, mesmo quando não está sendo executado no Modo Zoom, mas mostrará uma escala de 3,0 quando estiver sendo executado no simulador.fonte
A resolução real / física do iPhone 6 Plus é de 1920x1080, mas no Xcode você cria sua interface com resolução de 2208x1242 (736x414 pontos) e no dispositivo é automaticamente reduzida para 1920x1080 pixels.
Referência rápida das resoluções do iPhone:
fonte
Você provavelmente deve parar de usar imagens de inicialização no iOS 8 e usar um storyboard ou nib / xib.
No Xcode 6 , abra o
File
menu e escolhaNew
⟶File...
⟶iOS
⟶User Interface
⟶Launch Screen
.Em seguida, abra as configurações do seu projeto clicando nele.
No
General
guia, na seção chamadaApp Icons and Launch Images
, defina aLaunch Screen File
aos arquivos que você acabou de criar (isto irá definirUILaunchStoryboardName
eminfo.plist
).Observe que, por enquanto, o simulador mostrará apenas uma tela preta; portanto, você precisa testar em um dispositivo real .
Adicionando um arquivo xib da Tela de Lançamento ao seu projeto:
Configurando seu projeto para usar o arquivo xib da Tela de Ativação em vez do Catálogo de Ativos:
fonte
No dispositivo físico, os limites da tela principal do iPhone 6 Plus são 2208x1242 e os limites nativos são 1920x1080 . Há dimensionamento de hardware envolvido para redimensionar para a exibição física.
No simulador, os limites da tela principal do iPhone 6 Plus e os limites nativos são 2208x1242.
Em outras palavras, os vídeos, o OpenGL e outras coisas baseadas nesses
CALayers
pixels lidam com o buffer de quadro real de 1920x1080 no dispositivo (ou 2208x1242 no sim). As coisas que lidam com pontosUIKit
serão tratadas com os limites de 2208x1242 (x3) e serão dimensionadas conforme apropriado no dispositivo.O simulador não tem acesso ao mesmo hardware que está realizando a escala no dispositivo e não há realmente um grande benefício em simulá-lo no software, pois eles produziriam resultados diferentes do hardware. Portanto, faz sentido definir a
nativeBounds
tela principal de um dispositivo simulado para os limites da tela principal de um dispositivo físico.O iOS 8 adicionou a API a
UIScreen
(nativeScale
enativeBounds
) para permitir que um desenvolvedor determine a resolução doCADisplay
correspondente aoUIScreen
.fonte
Para quem gosta de saber como os aplicativos herdados são tratados, fiz alguns testes e cálculos sobre o assunto.
Graças à dica @ hannes-sverrisson, comecei com a suposição de que um aplicativo herdado é tratado com uma visualização de 320x568 no iPhone 6 e iPhone 6 plus.
O teste foi realizado com um fundo preto simples
[email protected]
com uma borda branca. O plano de fundo tem um tamanho de 640x1136 pixels e é preto com uma borda branca interna de 1 pixel.Abaixo estão as capturas de tela fornecidas pelo simulador:
Na captura de tela do iPhone 6, podemos ver uma margem de 1 pixel na parte superior e inferior da borda branca e uma margem de 2 pixels na captura de tela do iPhone 6 plus. Isso nos dá um espaço usado de 1242x2204 no iPhone 6 plus, em vez de 1242x2208 e 750x1332 no iPhone 6, em vez de 750x1334.
Podemos assumir que esses pixels mortos devem respeitar a proporção do iPhone 5:
Segundo, é importante saber que os recursos @ 2x serão redimensionados não apenas no iPhone 6 plus (que espera recursos @ 3x), mas também no iPhone 6. Isso provavelmente ocorre porque o não dimensionamento dos recursos levaria a layouts inesperados, devido a para a ampliação da vista.
No entanto, essa escala não é equivalente em largura e altura. Eu tentei com um recurso 264x264 @ 2x. Dados os resultados, devo assumir que a escala é diretamente proporcional à proporção de pixels / pontos.
É importante observar que a escala do iPhone 6 não é a mesma em largura e altura (309x310). Isso tende a confirmar a teoria acima de que a escala não é proporcional em largura e altura, mas usa a proporção de pixels / pontos.
Eu espero que isso ajude.
fonte
Confira este infográfico: http://www.paintcodeapp.com/news/iphone-6-screens-demystified
Explica as diferenças entre os antigos iPhones, iPhone 6 e iPhone 6 Plus. Você pode ver a comparação dos tamanhos de tela em pontos, pixels renderizados e pixels físicos. Você também encontrará respostas para sua pergunta aqui:
Atualizar:
Existe uma versão atualizada do infográfico mencionada acima. Ele contém informações mais detalhadas sobre as diferenças de resolução de tela e abrange todos os modelos de iPhone até o momento, incluindo dispositivos de 4 polegadas.
http://www.paintcodeapp.com/news/ultimate-guide-to-iphone-resolutions
fonte
Mesmo que eu geralmente não goste do tom do blog Daring Fireball de John Gruber, sua Conjectura de exibição maior para iPhone vale a pena ler.
Ele adivinhou, mas acertou exatamente a resolução em pontos e em pixels para ambos os modelos, exceto que ele não esperava que a Apple construísse uma tela física de resolução menor e reduzisse a escala (os detalhes estão na resposta de @ Tommy).
A essência de tudo isso é que é preciso parar de pensar em termos de pixels e começar a pensar em termos de pontos (esse é o caso há algum tempo, não é uma invenção recente) e o tamanho físico resultante dos elementos da interface do usuário. Em resumo, os dois novos modelos de iPhone melhoram nesse aspecto, já que a maioria dos elementos permanece do mesmo tamanho, basta caber mais na tela (para cada tela maior, mais).
Estou um pouco decepcionado por eles não terem mantido o mapeamento da resolução interna para a resolução de tela real 1: 1 para o modelo maior.
fonte