2012-12-10 4 views
1

화면 크기를 사용하여 감지하는 방법이 iPhone 5인지 궁금합니다. 코드를 사용했을 때 iPhone 5에서 3.5 인치 인터페이스를 사용하는 순간에 응용 프로그램iPhone 5 : iPhone 5의 화면 크기를 알아 보려는 경우

CGSize result = [[UIScreen mainScreen] bounds] .size;

이렇게하면 화면 크기의 높이가 568 대신 400이됩니다. 그 이유는 iPhone 5에서 3.5 인치 인터페이스를 사용하고 있기 때문입니다. 응용 프로그램의 레이아웃을 변경해야한다는 것을 알고 있습니다. 그러나 시간 제한으로 인해 이러한 방식으로 유지하려고했습니다.

또는 내가 진짜 픽셀을

CGFloat screenScale = [[UIScreen mainScreen] 스케일]을 얻을 수있는 규모 계수를 얻을해야합니까;

도와주세요 ...

답변

4

: -

if([[UIDevice currentDevice]userInterfaceIdiom]==UIUserInterfaceIdiomPhone) 
{ 
    if ([[UIScreen mainScreen] bounds].size.height == 568) 
    { 


    } 
    else 
    { 
     //iphone 3.5 inch screen 
    } 
} 
else 
{ 
     //[ipad] 
} 

그냥 내가의 모델 번호를 확인할 수 있습니다이 Detect device type

1
CGRect screenBounds = [[UIScreen mainScreen] bounds]; 
if (screenBounds.size.height == 568) 
    // 4-inch 
else 
    // 3.5-inch 
+0

에 내 대답을 방문 전화 대신 ... http://support.apple.com/kb/HT3939?viewlocale=ko_KR&locale=ko_KR – LittleFunny

0

프로젝트가 새 기본 이미지로 [email protected]가 포함되어 있지 않은 경우, 아이폰 5는 일반 480x320을 화면 크기를보고합니다.

를 읽으 실 How to detect iPhone 5 (widescreen devices)?

+0

예.하지만 4 인치에서 사용되지 않는 모든 인터페이스는 늘어납니다. – LittleFunny

+0

아니요, 그렇지 않습니다. 그것은 3을 중심에 둔다.아이폰 5의 화면에 5 인치 인터페이스. 위와 아래 픽셀은 검은 색입니다. – Anton

+0

@ Simon 당신은 실제 장치에서 그것을 확인 했습니까? 최소한 Xcode 4.5의 초기 버전에서는 장치와 시뮬레이터간에 다른 동작을 보았습니다. – Tommy

0

레이아웃 애플이 다시 한 폼 팩터를 변경하기로 결정 즉시 중단 할 장치 유형, 확인하지 않고이에 적응 할 수 있어야한다.

사용 자동 크기 조정 (자동 레이아웃 구별하지만, 모든 일이 당신에게 있다면 사용할 수 있습니다 더 나은), 이것은 서브 클래스 UIView 충분하고 -layoutSubviews를 오버라이드 (override)하지 않는 경우,이 작업을 수행 등 9 패치를 사용하고 내가 진짜 필요를 볼 수 없습니다 장치가 iPhone 4인지 iPhone 5인지 알 수 있습니다.

0

첫 번째로 앱에서 iPhone 5의로드 이미지를 지정할 때까지는 iPhone 4처럼 실행되고 {320, 480} 당신이 전화 [[UIScreen mainScreen] 경계] 크기는

둘째, 당신은 사용해야 경계 :

CGSize screenSize = [[UIScreen mainScreen] bounds].size; 

또한 상태 표시 줄의 높이를 설명 할 수 있습니다 :

CGFloat statusBarHeight = ([UIApplication sharedApplication].statusBarHidden ? 0.0f : [UIApplication sharedApplication].statusBarFrame.size.height); 

를 현재 방향 (세로 또는 가로)에 따라 화면의 너비를 얻고있는 경우에는 폭을 뒤집어한다 bounds 함수에 의해 반환 된 높이.

if (UIInterfaceOrientationIsLandscape([UIApplication sharedApplication].statusBarOrientation)) { 
    screenSize = CGSizeMake(screenSize.height, screenSize.width); 
} 
당신이 easly 조건 아래로 아이폰, 아이폰 5와 아이 패드를 감지 할 수
1
instead of find hight you have to use following code to find your device is iPhone 5 or below iphone 5. 

#define IS_IPHONE_5 (fabs((double)[ [ UIScreen mainScreen ] bounds ].size.height - (double)568) < DBL_EPSILON) 
-(void)ViewDidLoad 
{ 
    if(IS_IPHONE_5) 
    { 
     //code of iphone 5 
    } 
    else 
    { 
     //code of below iphone 5 
    } 
}