2014-10-23 6 views
0

나는 지난 며칠 동안 이것을 알아 내려고 노력했지만 iPhone 5,5 및 6의 화면 크기는 계속 유지하려고 노력했습니다. -> 높이 -1136 너비 640. 어떻게이 두 장치의 차이점을 알 수 있습니까? 시뮬레이터입니까? 현재 크기를 보려면 실제 장치에서 실행 중이어야합니까? 내가 뭘 잘못하고 있니? 요세미티에서 Xcode 6을 실행하고 시뮬레이터로 테스트하고 있습니다.Xcode 시뮬레이터에서 iPhone 5/5와 6의 차이점을 알려주는 방법

float heightOfScreen = [[UIScreen mainScreen ] nativeBounds].size.height; 
    float widthOfScreen = [[UIScreen mainScreen ] nativeBounds].size.width; 
    CGSize size = CGSizeMake(widthOfScreen , heightOfScreen); 
    NSLog(@"Size: %@", NSStringFromCGSize(size)); 


    // Iphone 6 plus H-1704 W-960 
    // Iphone 6  H-1136 W-640 <--- (why are they the same) 
    // Iphone 5s  H-1136 W-640 <--- 
    // Iphone 4s  H-960 W-640 
+1

iPhone 모델을 화면 크기로 감지하는 것은 항상 나쁜 생각입니다. 실제로 iPhone 모델을 감지하는 것은 일반적으로 필요하지 않습니다 (이 경우 어떤 유스 케이스도 모르겠습니다). 어쩌면 [UIDeviceHardware] (https://gist.github.com/Jaybles/1323251)가 도움이 될 수 있습니다. –

+0

@FabioPoloni 일부 회사는이 정보를 사용하여 통계를 수행하고 분석합니다. – KudoCC

+0

@KudoCC 그 경우 : 크기로 iPhone을 감지하는 아이디어는 더욱 심각합니다. –

답변

3

모든 아이폰은 다른 내부 이름이 있습니다

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    size_t size; 
    sysctlbyname("hw.machine", NULL, &size, NULL, 0); 
    char *machine = malloc(size); 
    sysctlbyname("hw.machine", machine, &size, NULL, 0); 
    NSString *platform = [NSString stringWithCString:machine encoding:NSUTF8StringEncoding]; 
    NSLog(@"iPhone Device%@",[self platformType:platform]); 

    free(machine); 
} 


- (NSString *) platformType:(NSString *)platform 
{ 
    if ([platform isEqualToString:@"iPhone4,1"]) return @"iPhone 4S"; 
    if ([platform isEqualToString:@"iPhone5,1"]) return @"iPhone 5 (GSM)"; 
    if ([platform isEqualToString:@"iPhone5,2"]) return @"iPhone 5 (GSM+CDMA)"; 
    if ([platform isEqualToString:@"iPhone5,3"]) return @"iPhone 5c (GSM)"; 
    if ([platform isEqualToString:@"iPhone5,4"]) return @"iPhone 5c (GSM+CDMA)"; 
    if ([platform isEqualToString:@"iPhone6,1"]) return @"iPhone 5s (GSM)"; 
    if ([platform isEqualToString:@"iPhone6,2"]) return @"iPhone 5s (GSM+CDMA)"; 
    if ([platform isEqualToString:@"iPhone7,2"]) return @"iPhone 6"; 
    if ([platform isEqualToString:@"iPhone7,1"]) return @"iPhone 6 Plus"; 
    if ([platform isEqualToString:@"i386"])   return @"Simulator"; 
    if ([platform isEqualToString:@"x86_64"])  return @"Simulator"; 

    return platform; 
} 

을 그리고 방법 아이폰 4, 5, 6은 모두 서로 다른 화면 크기가 :

iPhone 4, 4S:  (640, 960) 
iPhone 5, 5C, 5S: (640, 1136) 
iPhone 6:   (750, 1334) 
iPhone 6 Plus:  (1080, 1920) 

당신은이 질문을 참조 할 수 있습니다 : Identify new iPhone model on xcode (5, 5c, 5s)

+0

안녕하세요 감사하지만이 시뮬레이터와 작동하지 않습니다. –

+2

그것은 시뮬레이터가 다른 내부 이름 (시뮬레이터 내부 이름에 대한 대답을 업데이트했기 때문)입니다. –

+0

안녕하세요 산티아고 비록 당신의 시뮬레이터와 함께 그것은 시뮬레이터를 구별 할 수있는 좋은 일하는 경우. 이 스택 오버플로 응답은 나를 위해 최선을 다 : http://stackoverflow.com/questions/25892207/how-to-specify-size-for-iphone-6-customised-edge-to-edge-image?lq=1 –

2

this guide to iphone resolutions에서 본다면 시뮬레이터가 확대 모드로 실행되고 있다고 생각합니다. 따라서 비활성화하십시오 :

  1. iOS 설정 앱을 시작하십시오.
  2. 아래로 스크롤하여 디스플레이 & 밝기를 선택하십시오.
  3. 확대/축소 표시 섹션에서보기 옵션을 선택하십시오.
  4. 원하는 설정을 미리보고 선택하십시오.
+0

IOS는 어디에 있습니까? 설정 앱은 무엇입니까? –

+0

@GerardGrundy 홈 화면에서 ... –

+0

@Esese 여전히 "디스플레이 및 밝기"를 찾을 수 없으므로 스크린 샷을 보낼 수 있습니까? –