iPhone适配.md
1.72 KB
iPhone尺寸:
设备iPhone 对角线Diagonal 逻辑分辨率(point) Scale Factor 设备分辨率(pixel)
3GS 3.5-inch 320x480 @1x 320x480
4(s) 3.5-inch 320x480 @2x 640x960
5c 4-inch 320x568 @2x 640x1136
5(s) 4-inch 320x568 @2x 640x1136
6 4.7-inch 375x667 @2x 750x1334
6+ 5.5-inch 414x736 @3x (1242x2208->)1080x1920
适配须知:
原版设计图的约束数值都是按照iPhone6(4.7-inch)的设计给的,在项目中都是按照iPhone5(4-inch)的数值实际使用的
例如:程序中有这样一行代码:UILabel *nameLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 100 / 2 * 0.854, 100)];
适配后的代码是:UILabel *nameLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, LayOutForScaleIPhone6P(100 / 2 * 0.854), LayOutForScaleIPhone6P(100))];
方法1:
`#define LayOutForScaleIPhone6P(offsetForIPhone6) ([DeviceTools is5p5InchPhone] ? (1.294 * offsetForIPhone6) : LayOutForScale(offsetForIPhone6))`
适用环境:
在没有新的设计图的情况下,项目内的参数都需要这个宏来,参数是:(按照iPhone6给的约束计算出的iPhone5的标准)
方法名2:
`#define LayoutForFitIPhone6P(offsetForIPhone6,offsetForIPhone6P) ([DeviceTools is5p5InchPhone] ? offsetForIPhone6P : LayOutForScale(offsetForIPhone6))`
适用环境:
在有iPhone6P新设计图的情况下,需要使用这个宏,第一个参数是:(按照iPhone6给的约束计算出的iPhone5的标准),第二个参数是:(新的按照iPhone6P给的约束)