设备 |
逻辑分辨率 |
物理分辨率 |
自然缩放因子 |
iPhone 5 |
320 x 568 |
640 x 1136 |
2x |
iPhone 5S/5C |
320 x 568 |
640 x 1136 |
2x |
iPhone 6 |
375 x 667 |
750 x 1334 |
2x |
iPhone 6 Plus |
414 x 736 |
1080 x 1920 |
3x |
iPhone 6s |
375 x 667 |
750 x 1334 |
2x |
iPhone 6s Plus |
414 x 736 |
1080 x 1920 |
3x |
iPhone SE |
320 x 568 |
640 x 1136 |
2x |
iPhone 7 |
375 x 667 |
750 x 1334 |
2x |
iPhone 7 Plus |
414 x 736 |
1080 x 1920 |
3x |
iPhone 8 |
375 x 667 |
750 x 1334 |
2x |
iPhone 8 Plus |
414 x 736 |
1080 x 1920 |
3x |
iPhone X |
375 x 812 |
1125 x 2436 |
3x |
iPhone XR |
375 x 812 |
1125 x 2436 |
3x |
iPhone XS |
375 x 812 |
828 x 2436 |
3x |
iPhone XS Max |
414 x 896 |
1242 x 2688 |
3x |
iPhone 11 |
414 x 896 |
828 x 1792 |
2x |
iPhone 11 Pro |
375 x 812 |
1125 x 2436 |
3x |
iPhone 11 Pro Max |
414 x 896 |
1242 x 2688 |
3x |
逻辑分辨率 |
设备 |
高宽比 |
320 x 568 |
5、5s、5c、SE |
1.775 |
375 x 667 |
6、6s、7、8 |
1.779 |
414 x 736 |
6P、6sP、7P、8P |
1.777 |
414 x 896 |
XS Max、11、11 Pro Max |
2.164 |
375 x 812 |
X、XS、XR、11 Pro |
2.165 |
// 逻辑分辨率
CGRect bounds = [UIScreen mainScreen].bounds;
// 物理分辨率
CGRect nativeBounds = [UIScreen mainScreen].nativeBounds;
// 自然缩放因子
CGFloat scale = [UIScreen mainScreen].scale;
// 本地缩放因子
CGFloat nativeScale = [UIScreen mainScreen].nativeScale;
- 物理分辨率和自然缩放因子是固定的;
- 逻辑分辨率和本地缩放因子是可变的,比如开启了放大模式,逻辑分辨率会降低,本地缩放因子会升高;
-
bounds * nativeScale = nativeBounds
;
- 标准模式下:
scale == nativeScale
、 放大模式下: scale != nativeScale
;
- Plus系列是个奇葩,标准和放大模式scale != nativeScale;