iPhone5의 스크린 크기와 iPhone4, iPhone5 호환하여 코딩하기 -- iOS (iPhone)




iPhone4에서 컨트롤을 전체로 지정하기 위해 320 * 480으로 지정한다.

[mWebView setFrame:CGRectMake(0, 0, 320, 480)];

그런데, 이런 코딩은 iPhone5에서는 아래가 잘려서 나오게 된다.
이유는 iPhone5가 320 * 568의 해상도를 가지고 있기 때문이다.

그래서 필자는 컨트롤의 크기를 지정하는 코딩을 특히 전체로 보여져야 하는 부분의 코딩을 아래와 같이 수정하였다.


#define PHONE_SCREEN_HEIGHT   CGRectGetHeight([UIScreen mainScreen].applicationFrame)
#define PHONE_SCREEN_WIDTH    CGRectGetWidth([UIScreen mainScreen].applicationFrame)

[mWebView setFrame:CGRectMake(0, 0, PHONE_SCREEN_WIDTH, PHONE_SCREEN_HEIGHT)];


추가) 2012.12.20

iPhone5에서 TableView의 하단 (yPosition 480을 넘기는 Cell)이 안눌리는 현상이 있었는데 아래와 같이 해결하였다.
원인은 View의 크기 등을 위의 방법으로 늘려도 전체의 bounds가 늘어나지 않으면 응답을 못받는 것이었으며, 아래의 해결책들이 바로 이 문제를 다룬 것이다.


방법1) xib파일의 Attributes Inspector에서 Window section 중 Full Screen At Launch를 체크

방법2) xib파일에서 필자처럼 Window section이 없는 경우, Attributes Inspector에서 Simulated Metrics section 중 Size를 Retina 4 Full Screen으로 변경할 것.

보통 iPhone4에서 개발 시 위의 Size를 None이나 Freeform으로 지정했는데 이것이 문제였다.
iPhone5는 물론 아래 버전에서도 적절한 크기로 잘 작동한다.

방법3) xib파일을 사용하지 않는 경우, viewDidLoad()에 아래를 추가한다.

self.view.frame =
[UIScreen mainScreen].bounds];


추가) 2012.12.21

iPhone4, iPhone5 Simulator

XCode 4.5에서 시뮬레이터로 실행하면 보통 iPhone 6.0 Simulator로 해서 Old iPhone의 시뮬레이터가 동작한다.
iPhone5에 맞추기 위해서는 

iOS Simulator 메뉴 > Hardware > Device >
iPad
iPad (Retina)
iPhone    iPhone older
iPhone (Retina 3.5-inch) iPhone 4.x
iPhone (Retina 4-inch) iPhone 5.x

로 선택해 사용이 가능하다.

처음에 당황스러웠는데, 시뮬레이터에 Home버튼이 없을 경우, 

Home키 : Shift + Command + H

를 이용하여 Home키 누르기와 두 번 실행하여 강제종료를 위한 더블클릭이 가능하다.


추가) 2013.01.04

iPhone5s가 곧 나올 것 같은데 이 버전은 iPhone5에서 가로로 좀 더 커져서 나올 예정이라고 한다.

핑백

덧글

댓글 입력 영역