iPhone X引导页变形问题

前言:

今天我司美工,呸!是设计!新买了一个iPhone X,下载了我们的app,引导页怎么变形了?What?作为一个资深的iOS开发,怎么能忍受这种瑕疵存在呢?简直是奇耻大辱呀!所以开始了接下来探索之旅!

之前变形的加载方式

首先把@2x,@3x的图片放到Assets.xcassets中,如下图

然后再引导页控制器中加载引导页图片

结果iPhone X,XS,XS max变形!卒!

修改后的加载方式:

1、每个不同屏幕都做新的引导页,安装包会很大(因为我们的引导页好几张呢),可能会有两种解决办法了。

   1、是背景色是不变的话,设计师可以只做中间的图片,这样会小一些;

   2、是只切割一套屏幕的引导页(750*1334)即可,当然只切割两套(4/4s、6/6s)也是可以的。

2、不同屏幕的屏大小比较:

 4/4s     3.5inch    分辨率640*960      高宽比960/640 = 1.5

5/5s/5c/SE         4inch            分辨率640*1136            高宽比1136/640 = 1.775

6/6s/7/8              4.7inch         分辨率750*1334           高宽比1334/750 = 1.775  

6plus/6splus

5.5inch          分辨率1242*2208         高宽比2208/1242 = 1.778

/7plus/8plus           

x                           5.8inch         分辨率1125*2436          高宽比2436/1125 =  2.165

可知  切割一套6/6s就可以了 ,小屏可做截取  大屏可做等比拉伸显示。

3、UIImageView有个属性是contentMode,可取值:UIViewContentModeScaleToFill  拉伸图片至填充整个UIImageView,图片的显示尺寸会和imageVew的尺寸一样 。

UIViewContentModeScaleAspectFill 按照图片原来的宽高比进行伸缩,伸缩至图片的宽度和imageView的宽度相等 或者 图片的高度和imageView的高度相等  (只有宽和高其中一个相等是不可以的,图片的缩放尺寸可以超过imageView尺寸大小,伸缩必有scale  等比伸缩必有aspect)如下图所示即可以了。

说到这里,是不是应该掏出小本本记起来了!

操作如下:

1、将750*1334的图片放进工程里面。

2、修改加载引导页图片的方式

3、看效果!


这样删掉了3倍图,节省了内存,又完美解决引导页变形问题。

PS:

imageWithContentsOfFile:和  imageNamed:图片加载方式的比较,

imageNamed:当加载时会缓存图片,所以下次加载的时候会比较快,但是会占内存,适合频繁加载的小图片。

imageWithContentsOfFile:通过图片文件的路径加载图片,不会缓存图片,适合不经常使用的大图片加载。

你可能感兴趣的:(iPhone X引导页变形问题)