iOS 화면 폭, 장치 모델, 시스템 버전 정보 얻기
4025 단어 iOSiOS의 바다 줍기
제가 안드로이드 개발을 공부할 때 설비가 잘 어울리는 것은 골치 아픈 일이라고 생각했어요. 안드로이드 설비가 너무 많아서 그때 iOS 개발을 부러워하는 사람들이 잘 어울리는 문제를 신경 쓰지 않아도 돼요. 제가 iOS 개발을 배우기 시작하면 iOS의 화면도 다양해지기 시작했어요.그래서 적당히 해야 돼,sad...
전에도 연구한 적이 있는데 여기서 나의 방법을 기록하고 본고는 세 가지 자주 사용하는 설비 정보 획득 방식을 소개한다.
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, 스타와 포크를 환영합니다~
전재는 출처를 밝혀 주십시오. 감사합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
View의 레이아웃 방법을 AutoLayout에서 따뜻한 손 계산으로 하면 성능이 9.26배로 된 이야기이 기사는 의 15 일째 기사입니다. 어제는 에서 이었습니다. 손 계산을 권하는 의도는 없고, 특수한 상황하에서 계측한 내용입니다 화면 높이의 10 배 정도의 contentView가있는 UIScrollView 레이아...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.