iOS 코딩팁 - iPhone X 판독법

새로운 네비게이션 헤더와 상태표시줄이 적용된 

iPhone X에 알맞는

UI 적용을 위해

실행되는 기기가 iPhone X 인지 

구분할 필요가 있는 경우가 발생한다.


iOS에서 제공하는 직접적으로 기기를 구분할 수 있는 메소드를 사용할 경우

안타깝게도 시물레이터 상에서는 구분 할 수가 없어

디버그 모드에서 사용이 힘들다.


다른 몇가지 상황을 구분해

iPhone X 여부를

확인할 수 있는 방법을 알아보자.


1. 스크린 해상도 확인

1125px x 2436px 의 해상도를

유일하게 가지고 있는 iPhone X의

특징을 활용하는 방법이다.


if (UIDevice().userInterfaceIdiom == .phone) &&

            (UIScreen.main.nativeBounds.height == 2436) {

                print("It is iPhone X")

            }


2. 스크린 헤더 Notch바 유무 확인

현재 출시된 아이폰 중

유일하게 iPhone X 만이

헤더 윗부분에 notch를 가지고 있는

상황이므로 이를 체크하는 방법이 있다.


if #available(iOS 11.0, *) {

    if ((UIApplication.shared.keyWindow?.safeAreaInsets.top)! > CGFloat(0.0)) {

      print("It is iPhone X")

    }

}


다른 M자 탈모형 아이폰 기기가

나오기 전까지는 위에 두가지 방법으로

iPhone X을 구분할 수 있는다.


이 둘중 사용하기 편한 코드를 활용해

코드 안에서 iPhone X를 구분하면 되겠다.


- The Dget -

+ Recent posts