iOS 화면 폭, 장치 모델, 시스템 버전 정보 얻기

소개하다.
제가 안드로이드 개발을 공부할 때 설비가 잘 어울리는 것은 골치 아픈 일이라고 생각했어요. 안드로이드 설비가 너무 많아서 그때 iOS 개발을 부러워하는 사람들이 잘 어울리는 문제를 신경 쓰지 않아도 돼요. 제가 iOS 개발을 배우기 시작하면 iOS의 화면도 다양해지기 시작했어요.그래서 적당히 해야 돼,sad...
전에도 연구한 적이 있는데 여기서 나의 방법을 기록하고 본고는 세 가지 자주 사용하는 설비 정보 획득 방식을 소개한다.
  • 화면 너비를 가져옵니다.컨트롤 위치를 설정할 때 상대 화면의 거리를 계산하는 데 사용합니다
  • 디바이스 모델을 가져옵니다.5s와 6+의 화면 크기가 매우 멀기 때문에 상응하는 컨트롤의 위치, 크기를 조정해야 한다. 그렇지 않으면 6+에서 매우 넓어 보이거나 5s에서 완전하지 않은 문제가 나타날 수 있다.
  • 시스템 버전을 가져옵니다.서로 다른 시스템 버전은 서로 다른 특성을 가지고 밤을 들면 iOS 9 이하의 버전에는 Live Photo가 없다.밤을 하나 더 들면 iOS 7 이상의 시스템 버전은 종종 경계를 조정해야 한다
  • 다음은 각자의 획득 방법에 대해 상세하게 이야기하지만, 사실은 모두 비교적 간단하다.
    1. 화면의 넓이를 가져옵니다.
    화면의 폭은 UI를 코드로 쓸 때 자주 필요한 정보이다.예를 들어 UIlabel을 써서 프레임을 설정할 때 가운데에 놓고 200으로 설정하려면 x값을 어떻게 설정해야 합니까?바로 (화면의 너비 - 200)/2입니다. 그렇죠? 그러면 어떤 장치에서든 영원히 가운데에 있을 수 있습니다.화면 폭과 높이를 가져오는 방법은 다음과 같습니다.
    //     
     [UIScreen mainScreen].bounds.size.width
    
    //     
    [UIScreen mainScreen].bounds.size.height

    일반적으로 pch 파일에서 매크로로 설정하면 모든 곳에서 호출할 수 있고 매번 이렇게 긴 코드를 사용하지 않아도 된다.
    //     
    #define SCREENWIDTH       [UIScreen mainScreen].bounds.size.width
    #define SCREENHEIGHT      [UIScreen mainScreen].bounds.size.height

    이렇게 하면 필요한 곳에 宏SCREENWIDTH와 SCRENHEIGHT를 직접 사용하면 된다.
    2. 장비의 모델을 확보한다.
    설비 모델을 얻는 데는 몇 가지 방법이 있는데, 여기서 나는 비교적 둔한 방법을 사용하고, 설비의 해상도를 얻어 설비의 모델을 판단한다.우리 먼저 아래의 이 표를 봅시다.
    장치 아이폰
    넓은 Width
    하이라이트
    대각선 Diagonal
    논리 해상도(point)
    Scale Factor
    장치 해상도
    PPI
    3GS
    2.4 inches (62.1 mm)
    4.5 inches (115.5 mm)
    3.5-inch  
    320x480
    @1x
    320x480
    163
    4(s)
    2.31 inches (58.6 mm)
    4.5 inches (115.2 mm)
    3.5-inch
    320x480
    @2x
    640x960
    326
    5c
    2.33 inches (59.2 mm)
    4.90 inches (124.4 mm)
    4-inch
    320x568
    @2x
    640x1136
    326
    5(s)
    2.31 inches (58.6 mm)
    4.87 inches (123.8 mm)
    4-inch
    320x568
    @2x
    640x1136
    326
    6(s)
    2.64 inches (67.0 mm)
    5.44 inches (138.1 mm)
    4.7-inch
    375x667
    @2x
    750x1334
    326
    6(s)+
    3.06 inches (77.8 mm)
    6.22 inches (158.1 mm)
    5.5-inch
    414x736
    @3x
    (1242x2208->) 1080x1920
    401 
    장치 해상도 열을 살펴보면 몇 가지 화면의 장치 해상도가 다르다는 것을 알 수 있기 때문에 이를 근거로 장치 모델을 판단할 수 있다. 나는 여기서 몇 가지 현재 가장 흔히 볼 수 있는 모델을 판단했고 똑같이 매크로를 사용했다.
    //            ,    YES,    NO
    #define isiPhone5or5sor5c ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size) : NO)
    #define isiPhone6or6s ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(750, 1334), [[UIScreen mainScreen] currentMode].size) : NO)
    #define isiPhone6plusor6splus ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1242, 2208), [[UIScreen mainScreen] currentMode].size) : NO)

    그러면 나는 이 몇 개의 값이 어느 것이YES인지 판단하기만 하면 현재 어느 모델인지 알 수 있다. 예를 들어 다음과 같다.
        if (isiPhone5or5sor5c) {
            NSLog(@"   iPhone5   5s   5c") ;
        } else if (isiPhone6or6s) {
            NSLog(@"   iPhone6   6s");
        } else if (isiPhone6plusor6splus) {
            NSLog(@"   iPhone6plus  6splus");
        }

    이렇게 하면 된다.
    사실 해당 아이패드, 아이터치 등도 이렇게 판단할 수 있는데, 대응하는 해상도를 찾아서 판단하면 된다.
    3. 시스템 버전 가져오기
    시스템 버전에 적용되는 매크로를 가져와 전역 호출을 편리하게 하려면:
    //        
    #define SystemVersion ([[UIDevice currentDevice] systemVersion])

    이렇게 하면 버전 번호를 얻을 수 있고 인쇄할 수 있다.
    NSLog(@"       :iOS%@", SystemVersion);

    사용할 때 float형의 수로 전환하여 판단할 수 있다. 예를 들어 다음과 같다.
        if ([SystemVersion floatValue] >= 7.0)
        {
            ……
        }

    자주 사용하는 장치 정보 얻는 방법이 여기 있습니다. 여러분께 도움이 되었으면 좋겠습니다.
    여기는github의 예시 프로젝트 주소입니다.https://github.com/Cloudox/GetDeviceInfoDemo, 스타와 포크를 환영합니다~
    전재는 출처를 밝혀 주십시오. 감사합니다.

    좋은 웹페이지 즐겨찾기