본문 바로가기

프로그래밍/iOS

[ios] 기기의 가로, 세로 사이즈 가져오기(ios8 수정)

아이폰 5이상 단말이 등장하면서 320, 480으로 통일되던 아이폰 크기에 변화가 생겼다.

 

따라서 기기의 가로, 세로를 구하는 편이 조건문 없이 개발하기 편해 자주 #define을 통해 선언한다.

 

자주는 쓰는데 쓸때마다 찾고 있어 여기 적는다.

 

#define DEVICE_HEIGHT ([[UIScreen mainScreen] bounds].size.height)

 

#define DEVICE_WIDTH ([[UIScreen mainScreen] bounds].size.width)

 

 토막영어 : bounds는 한계, 한도

 

ios8에서는 현재 보이는 화면에 따라 width 값과  height 값이 바뀌기 때문에 ( 가로모드에서 height를 찍으면 device의 가로 값이 나온다)

두 값을 비교해서 큰 값을 height 작은값을 width로 쓰는 것이 낫다.


적어보자면

CGFloat device_height = (DEVICE_HEIGHT > DEVICE_WIDTH) ? DEVICE_HEIGHT : DEVICE_WIDTH;

CGFloat device_width = (DEVICE_HEIGHT < DEVICE_WIDTH) ? DEVICE_HEIGHT : DEVICE_WIDTH;

 

위와 같이 선언 한 뒤 device_height 값과 device_width 값을 쓰는 편이

화면 회전과 상관없이 항상 같은 값을 얻을 수 있다.


혹은

 [UIScreen mainScreen].fixedCoordinateSpace.bounds로 사용하는 것도 괜찮다