最近启动APP时要做一个引导页,要适配不同的机型:
手机 | 屏幕尺寸 | 比例 |
---|---|---|
iPhone 1G | 320x480 | 0.667 |
iPhone 3G | 320x480 | 0.667 |
iPhone 3GS | 320x480 | 0.667 |
iPhone 4 | 640x960 | 0.667 |
iPhone 4S | 640x960 | 0.667 |
iPhone 5 | 640x1136 | 0.564 |
iPhone 5S | 640x1136 | 0.564 |
iPhone 5C | 640x1136 | 0.564 |
iPhone 6 | 750x1334 | 0.5623 |
iPhone 6 Plus | 1080x1920 (开发应按照1242x2208适配) | 0.5625 |
iPhone 6S | 750x1334 | 0.5623 |
iPhone 6S Plus | 1080x1920 (开发应按照1242x2208适配) | 0.5625 |
iPhone 7 | 750x1334 | 0.5623 |
iPhone 7 Plus | 1080x1920 (开发应按照1242x2208适配) | 0.5625 |
640x960 640x1136 750x1334 1080x1920 1242x2208
共有以上几种尺寸
-(UIImage *)getFitFirstImage
{
float currentScreenScale = HSWidth/HSHeight;//当前屏幕比例
float a[3] = {640.0/960.0,750.0/1334.0,1242.0/2208.0};
int c = find(a, 3, currentScreenScale);
NSArray *imageScaleArray = @[@"640_960",
@"750_1334",
@"1242_2208"];
NSString *imageScale = imageScaleArray[c];
NSLog(@"%@",imageScale);
return [UIImage imageNamed:[NSString stringWithFormat:@"FirstLanuchImage%@.jpg",imageScale]];
}
int find(float *a,float n,float x)
{
int i;
float min=fabsf(*a-x);
int r=0;
for(i=0;i < n;++i)
{
if(fabsf(a[i]-x) < min)
{
min=fabsf(a[i]-x);
r=i;
}
}
return r;
}
主要通过当前屏幕的宽高比,找到数组中与当前屏幕最接近的图片尺寸,从而使用不同尺寸的图片,以达到适配效果。(这里只选择了三个尺寸的图)