前言:
今天我司美工,呸!是设计!新买了一个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:通过图片文件的路径加载图片,不会缓存图片,适合不经常使用的大图片加载。
网友评论