Situs web Apple mengklaim bahwa resolusinya adalah 1080p: 1920 x 1080
Namun, layar peluncuran yang dibutuhkan oleh Xcode (8.0 GM diluncurkan hari ini) adalah 2208 x 1242.
Siapa yang benar
ios
xcode
ios-simulator
iphone-6
iphone-6-plus
JasonGenX
sumber
sumber
Jawaban:
IPhone 6+ merender secara internal menggunakan aset @ 3x pada resolusi virtual 2208 × 1242 (dengan 736x414 poin), lalu sampel yang ditampilkan. Sama seperti menggunakan resolusi skala pada Retina MacBook - ini memungkinkan mereka menekan beberapa integral untuk aset piksel sementara masih memiliki misalnya teks 12 pt terlihat ukuran yang sama di layar.
Jadi, ya, layar peluncuran harus sebesar itu.
Matematika:
6, 5s, 5, 4s, dan 4 semuanya 326 piksel per inci, dan gunakan aset @ 2x untuk menempel pada sekitar 160 poin per inci dari semua perangkat sebelumnya.
6+ adalah 401 piksel per inci. Jadi secara hipotetis perlu sekitar @ 2,46x aset. Sebaliknya Apple menggunakan aset @ 3x dan menskalakan output lengkap hingga sekitar 84% dari ukuran aslinya.
Dalam praktiknya Apple telah memutuskan untuk menggunakan lebih seperti 87%, mengubah 1080 menjadi 1242. Tidak diragukan lagi, menemukan sesuatu sedekat mungkin menjadi 84% yang masih menghasilkan ukuran integral di kedua arah - 1242/1080 = 2208/1920 persis , sedangkan jika Anda mengubah 1080 menjadi, katakanlah, 1286, Anda entah bagaimana harus membuat 2286,22 piksel secara vertikal untuk skala dengan baik.
sumber
[UIScreen mainScreen].bounds.size.height
mengembalikan 736 di iPhone 6+ simulator saat dalam potret. Ini adalah nilai 2208 dibagi dengan skala 3. Lebar adalah 414.Jawabannya adalah aplikasi yang lebih lama berjalan dalam Mode Zoom 2208 x 1242. Tetapi ketika sebuah aplikasi dibangun untuk ponsel baru, resolusi yang tersedia adalah: Super Retina HD 5.8 (iPhone X) 1125 x 2436 (458ppi) , Retina HD 5.5 ( iPhone 6, 7, 8 Plus ) 1242 x 2208 dan Retina HD 4.7 ( iPhone 6 ) 750 x 1334 . Ini menyebabkan kebingungan yang disebutkan dalam pertanyaan. Untuk membuat aplikasi yang menggunakan ukuran layar penuh dari ponsel baru, tambahkan LaunchImages dalam ukuran: 1125 x 2436, 1242 x 2208, 2208 x 1242 dan 750 x 1334.
Diperbarui untuk iPhone 11, 11 Pro, 11 Pro Max
Ukuran untuk iPhone 11 Pro Max dengan penskalaan @ 3x , ruang koordinat: 414 x 896 poin dan 1242 x 2688 piksel, 458 ppi, ukuran fisik perangkat adalah 3,06 x 6,22 in atau 77,8 x 158,0 mm. Layar Super Retina XDR 6.5 ".
Ukuran untuk iPhone 11 Pro dengan skala @ 3x , ruang koordinat: 375 x 812 poin dan 1125 x 2436 piksel, 458 ppi, ukuran fisik perangkat 2,81 x 5,67 in atau 71,4 x 144,0 mm. Layar Super Retina XDR 5.8 ".
Ukuran untuk iPhone 11 dengan skala @ 2x , ruang koordinat: 414 x 896 poin dan 828 x 1792 piksel, 326 ppi, ukuran fisik perangkat 2,98 x 5,94 in atau 75,7 x 150,9 mm. Layar Liquid Retina HD 6.1 ".
Ukuran untuk iPhone X🅂 Max dengan penskalaan @ 3x (nama Apple: layar Super Retina HD 6.5 " ), ruang koordinat: 414 x 896 poin dan 1242 x 2688 piksel, 458 ppi, ukuran fisik perangkat adalah 3.05 x 6.20 in atau 77.4 x 157.5 mm.
Ukuran untuk iPhone X🅁 dengan penskalaan @ 2x (nama Apple: layar Super Retina HD 6.1 " ), ruang koordinat: 414 x 896 poin dan 828 x 1792 piksel, 326 ppi, ukuran fisik perangkat adalah 2,98 x 5,94 in atau 75,7 x 150,9 mm .
Ukuran untuk iPhone X🅂 dan iPhone X dengan penskalaan @ 3x (nama Apple: layar Super Retina HD 5.8 " ), ruang koordinat: 375 x 812 poin dan 1125 x 2436 piksel, 458 ppi, ukuran fisik perangkat 2,79 x 5,65 in atau 70,9 x 143,6 mm.
Ukuran untuk iPhone 6, 6S, 7 dan 8 dengan penskalaan @ 3x (nama Apple: Retina HD 5.5 ), ruang koordinat: 414 x 736 poin dan 1242 x 2208 piksel, 401 ppi, ukuran fisik layar 2,7 x 4,8 in atau 68 x 122 mm . Saat menjalankan dalam Mode Zoomed, yaitu tanpa LaunchImages baru atau dipilih dalam Pengaturan pada iPhone 6 Plus, skala asli adalah 2,88 dan layar adalah 320 x 568 poin, yang merupakan ukuran asli iPhone 5:
Ukuran untuk iPhone 6 dan iPhone 6S dengan penskalaan @ 2x (nama Apple: Retina HD 4.7 ), ruang koordinat: 375 x 667 poin dan 750 x 1334 piksel, 326 ppi, ukuran fisik layar 2,3 x 4,1 inci atau 58 x 104 mm . Saat menjalankan dalam Mode Zoomed, yaitu tanpa LaunchImages baru, layarnya berukuran 320 x 568 poin, yang merupakan ukuran asli iPhone 5:
Dan iPhone 5 untuk perbandingan adalah 640 x 1136, iPhone 4 640 x 960.
Berikut adalah kode yang saya gunakan untuk memeriksa ini (perhatikan bahwa nativeScale hanya berjalan di iOS 8):
Catatan: Unggah LaunchImages jika tidak, aplikasi akan berjalan dalam Mode Zoomed dan tidak menunjukkan skala, atau ukuran layar yang benar. Dalam Mode Zoomed
nativeScale
danscale
tidak akan sama. Pada perangkat yang sebenarnya skalanya bisa 2,608 pada iPhone 6 Plus, bahkan ketika itu tidak berjalan dalam Mode Zoomed, tetapi akan menunjukkan skala 3,0 saat berjalan di simulator.sumber
Resolusi iPhone 6 Plus nyata / fisik adalah 1920x1080 tetapi dalam Xcode Anda membuat antarmuka untuk resolusi 2208x1242 (736x414 poin) dan pada perangkat itu secara otomatis diperkecil hingga 1920x1080 piksel.
Referensi cepat resolusi iPhone:
sumber
Anda mungkin harus berhenti menggunakan gambar peluncuran di iOS 8 dan menggunakan storyboard atau nib / xib.
Di Xcode 6 , buka
File
menu dan pilihNew
⟶File...
⟶iOS
⟶User Interface
⟶Launch Screen
.Kemudian buka pengaturan untuk proyek Anda dengan mengkliknya.
Di
General
tab, di bagian yang disebutApp Icons and Launch Images
, setelLaunch Screen File
ke file yang baru saja Anda buat (ini akan diaturUILaunchStoryboardName
dalaminfo.plist
).Perhatikan bahwa untuk sementara ini simulator hanya akan menampilkan layar hitam, jadi Anda perlu menguji pada perangkat nyata .
Menambahkan file xib Layar Peluncuran ke proyek Anda:
Mengkonfigurasi proyek Anda untuk menggunakan file xib Layar Peluncuran alih-alih Katalog Aset:
sumber
Pada perangkat fisik, batas layar utama iPhone 6 Plus adalah 2208x1242 dan nativeBounds adalah 1920x1080 . Ada penskalaan perangkat keras yang terlibat untuk mengubah ukuran ke tampilan fisik.
Pada simulator, batas layar utama iPhone 6 Plus dan nativeBounds keduanya 2208x1242.
Dengan kata lain ... Video, OpenGL, dan hal-hal lain berdasarkan
CALayers
kesepakatan dengan piksel akan berurusan dengan buffer bingkai 1920x1080 nyata pada perangkat (atau 2208x1242 pada sim). Hal-hal yang berhubungan dengan poinUIKit
akan berurusan dengan 2208x1242 (x3) batas dan mendapatkan skala yang sesuai pada perangkat.Simulator tidak memiliki akses ke perangkat keras yang sama yang melakukan penskalaan pada perangkat dan tidak ada banyak manfaat untuk mensimulasikannya dalam perangkat lunak karena mereka akan menghasilkan hasil yang berbeda dari perangkat keras. Jadi masuk akal untuk mengatur
nativeBounds
layar utama perangkat yang disimulasikan ke batas-batas layar utama perangkat fisik.iOS 8 menambahkan API ke
UIScreen
(nativeScale
dannativeBounds
) untuk memungkinkan pengembang menentukan resolusi yangCADisplay
sesuai denganUIScreen
.sumber
Bagi mereka yang seperti saya yang bertanya-tanya bagaimana aplikasi warisan diperlakukan, saya melakukan sedikit pengujian dan perhitungan pada subjek.
Berkat petunjuk hannes-sverrisson, saya mulai dengan asumsi bahwa aplikasi lawas diperlakukan dengan tampilan 320x568 di iPhone 6 dan iPhone 6 plus.
Tes dibuat dengan latar belakang hitam sederhana
[email protected]
dengan batas putih. Latar belakang memiliki ukuran 640x1136 piksel, dan berwarna hitam dengan batas putih dalam 1 piksel.Di bawah ini adalah screenshot yang disediakan oleh simulator:
Pada tangkapan layar iPhone 6, kita dapat melihat margin 1 piksel di bagian atas dan bawah perbatasan putih, dan margin 2 piksel pada tangkapan layar iPhone 6 plus. Ini memberi kita ruang bekas 1242x2204 di iPhone 6 plus, bukannya 1242x2208, dan 750x1332 di iPhone 6, bukannya 750x1334.
Kita dapat mengasumsikan bahwa dead pixel tersebut dimaksudkan untuk menghormati aspek rasio iPhone 5:
Kedua, penting untuk mengetahui bahwa sumber daya @ 2x akan diskalakan tidak hanya pada iPhone 6 plus (yang mengharapkan aset @ 3x), tetapi juga pada iPhone 6. Ini mungkin karena tidak menskala sumber daya akan menyebabkan tata letak yang tidak terduga, karena untuk memperbesar tampilan.
Namun, penskalaan itu tidak setara dengan lebar dan tinggi. Saya mencobanya dengan sumber daya 264x264 @ 2x. Mengingat hasilnya, saya harus berasumsi bahwa penskalaan berbanding lurus dengan rasio piksel / poin.
Penting untuk dicatat bahwa penskalaan iPhone 6 tidak sama lebar dan tinggi (309x310). Ini cenderung untuk mengkonfirmasi teori di atas bahwa penskalaan tidak proporsional dalam lebar dan tinggi, tetapi menggunakan rasio piksel / poin.
Saya harap ini membantu.
sumber
Lihat infografis ini: http://www.paintcodeapp.com/news/iphone-6-screens-demystified
Ini menjelaskan perbedaan antara iPhone lama, iPhone 6 dan iPhone 6 Plus. Anda dapat melihat perbandingan ukuran layar dalam poin, piksel yang diberikan, dan piksel fisik. Anda juga akan menemukan jawaban untuk pertanyaan Anda di sana:
Memperbarui:
Ada versi terbaru dari infografis yang disebutkan di atas. Ini berisi info lebih rinci tentang perbedaan resolusi layar dan mencakup semua model iPhone sejauh ini, termasuk perangkat 4 inci.
http://www.paintcodeapp.com/news/ultimate-guide-to-iphone-resolutions
sumber
Bahkan jika saya secara umum tidak menyukai nada blog Daring Fireball milik John Gruber, Konjektur Tampilan iPhone yang Lebih Besar layak dibaca.
Dia menduga tapi punya persis tepat baik resolusi di poin dan dalam pixel untuk kedua model, kecuali bahwa ia tidak (saya tidak) mengharapkan Apple untuk membangun sebuah tampilan fisik resolusi yang lebih kecil dan menurunkan (rincian di @ jawaban Tommy).
Inti dari semua ini adalah bahwa seseorang harus berhenti berpikir dalam hal piksel dan mulai berpikir dalam hal poin (ini telah terjadi selama beberapa waktu, ini bukan penemuan baru) dan menghasilkan ukuran fisik elemen UI. Singkatnya, kedua model iPhone baru meningkat dalam hal ini karena secara fisik sebagian besar elemen tetap ukuran yang sama, Anda dapat memasukkan lebih banyak dari mereka di layar (untuk setiap layar yang lebih besar Anda dapat memuat lebih banyak).
Saya hanya sedikit kecewa mereka tidak terus memetakan resolusi internal ke resolusi layar aktual 1: 1 untuk model yang lebih besar.
sumber