2016-06-08 2 views
1

iOS에서 실제 크기를 검색하는 방법에 대한 많은 게시물을 보았습니다. 그런 솔루션을 찾았지만 모든 장치에서 올바르게 작동하지 않는다고 생각합니다.iOS 기기의 실제 크기 (인치)

+(float) getRealSize { 
    float scale = 1; 
    if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) { 
     scale = [[UIScreen mainScreen] scale]; 
    } 
    float dpi; 
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { 
     dpi = 132 * scale; 
    } else if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) { 
     dpi = 163 * scale; 
    } else { 
     dpi = 160 * scale; 
    } 
    CGRect originalFrame = [[UIScreen mainScreen] bounds]; 
    float w = originalFrame.size.width; 
    float h = originalFrame.size.height; 
    return dpi * sqrtf(w*w + h*h); 
} 

모든 장치를 지원하는 방법을 업데이트하는 방법은 무엇입니까? DPI (PPI) 또는 인치를 원합니다. 또는 도서관이 도움이 될 수 있습니다.

dublicated로 닫는 것을 방지하려면 stackoverflow에 적절한 해결책이 없습니다. 예, 들어 , iOS get physical screen size programmatically? Getting the physical screen size in inches for iPhone How to get the screen width and height in iOS? 등, 등, 등 ... 지금은 어떤 솔루션입니다.

+0

Omg, 왜 downvoted? – Vyacheslav

+0

실제 크기는 무엇을 의미합니까? 기기 크기가 화면 크기와 다릅니다. 장치 크기를 말할 때 사과 사양에서 가져올 수 있습니다. 애플 사이트에서 화면 크기를 얻을 수 있다고 생각합니다. 프로그래밍 방식으로 계산하는 것은 무엇입니까? –

+0

물론 화면의 실제 크기는 인치로 입력해야합니다. – Vyacheslav

답변

2

iOS에이 기능을 제공하는 API가 없습니다. 이것을 사용하고 새 장치가있을 때 업데이트해야합니다 : https://github.com/lmirosevic/GBDeviceInfo

이 문제는 AppStore에는 문제가되지 않지만 본때를 나타내는 창은 포함되지 않을 수도 있습니다.

또한, 당신은 단지 밖으로 정보를 복사 할 수 있습니다 : https://github.com/lmirosevic/GBDeviceInfo/blob/master/GBDeviceInfo/GBDeviceInfo_iOS.m - 이것은 장치에 대한 정보 단지 목록입니다 - 미친 아무것도

0
루 - 프랑코의 대답은 내 질문과 @

결과 코드 :

//method 
    -(float) getRealSize { 
     float scale = 1.f; 
     if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) { 
      scale = [[UIScreen mainScreen] scale]; 
     } 
     float ppi = [GBDeviceInfo deviceInfo].displayInfo.pixelsPerInch; 
     if (ppi == 0) { 
      ppi = 160.f; 
     } 
     CGRect originalFrame = [[UIScreen mainScreen] bounds]; 
     float w = originalFrame.size.width; 
     float h = originalFrame.size.height; 
     return sqrtf(w*w + h*h) * scale/ppi; 
    } 

//usage: 
float inches = [self getRealSize];