본문 바로가기
연구하기/iOS App Dev

iPhone 6 / 6+ 화면 좌표계 및 픽셀 스케일

by 썰렁황제 2014. 9. 11.

Xcode 6 GM 버전 배포되면서 확인하게 되어 정리해 둡니다.

아마 그 전 베타에서도 나왔던 걸로 아는데 베타로 시뮬레이터를 중간에 돌려보다 말아버리는 바람에 -_-..


어쨌거나 다음과 같습니다.

  • iPhone 6
    • 실제 해상도 : 750x1334
    • 좌표계 크기 : 375x667
    • Scale : 2.0

  • iPhone 6+
    • 실제 해상도 : 1080x1920
    • 좌표계 크기 : 414x736
    • Scale : 3.0

일단 이 정보만으로도 아실 분들은 아시리라 생각하기에 먼저 언급해 둡니다.

부가 설명 드리면,

아이폰은 이전부터 기본적인 좌표계가 초기 아이폰 시절의 해상도인 320x480 기준으로 되어 있었는데, 레티나 디스플레이 나오면서 이 좌표계 크기는 그대로 유지한 채로 최소값의 크기만 변경된 상태로 사용됩니다. 기본 아이폰 해상도에서는 1이 최소값이지만, 레티나에서는 0.5 가 최대값이죠.

이를 확인할 수 있게 하기 위해, 화면을 나타내는 UIScreen 클래스에 scale 이란 속성이 붙게 됩니다. 실제 픽셀과 좌표계 단위와의 비율을 표시하기 위한 것이죠. 예를 들어 이 값이 2.0 이면, 화면 좌표계의 1값은 실제 물리적 픽셀에서는 2가 됩니다. 따라서 아이폰 레티나 디스플레이에서는 화면 좌표계는 320x480 이지만 실제 픽셀은 640x960 이 되는 것이죠. 이 기조는 아이폰5 에서도 유지됩니다.


그런데 이게 이번 아이폰 6+ 에서 무너집니다. 아이폰 6의 경우는 그래도 Scale 값과 딱 맞습니다만,

아이폰 6+ 의 경우, 좌표계 크기와 스케일 값을 곱하면 1242x2208 입니다. 하지만 실제 화면 해상도는 아시다시피 1080x1920 이죠. 즉 이제 스케일값과 좌표계 크기를 곱해서 해상도를 추론하는 방법을 사용할 수 없다는 것입니다. 더불어 이 값을 이용하여 물리적 픽셀을 추론하는 것도 불가능하죠. 


한편, 아이폰 6의 경우에는 750x1334로, 딱 scale 값 만큼의 비율을 가집니다만, 여전히 이슈는 있습니다, 가로 및 세로 공간이 모두 늘어났다는 점이죠. 이제 아이폰에서도 더 이상 가로가 320으로 고정이 아니게 된 것입니다.

기존 앱의 경우야 아마 그대로 유지되리라 보지만, 신규 앱의 경우는 이제 AutoLayout 을 쓰지 않으면 일일이 대응하기에 매우 골아픈 환경이 될 것으로 보입니다.


이래저래 문제가 복잡해졌습니다. 앞으로 고민해야 할 요소들이 많아질 듯 합니다.



반응형