开发中有时候总会遇到适配的问题,今天说的适配从哪儿说起呢,就从我首页的tableview中的cell说起吧,项目完成之后,审核项目的时候,会发现总是各种尺寸均与设计图不符,普遍的问题就是各种图标均遭到了放大,无论字体还是图标,这就很郁闷了,怎么开始明明是按照原型图设计稿来进行的开发,怎么到了后来都统统放大了呢?最郁闷的莫不过我首页的TableView中cell图片都遭到了无辜的拉伸,怎一个惨字了得,真是哭笑不得。只能一点点排除原因了,在网上搜了很多,无果。
怎么办呢?仔细想了想,我是按照iPhone6的尺寸来进行设计的,理论上,在iPhone6上运行的时候应该是正常的,但是很不幸,在iPhone6设备上却遭到了无辜的放大,对,它被无情的放大了。为了便于找到问题的根源,我将cell的高度固定了,再设计中,高度是160,于是我返回的也是160的高度,好了,跑一下看看!结果差强人意,明明返回的是160的高度,结果却变成了180的高度,实际却足足多了20像素,尼玛,20像素呀!!不拉伸才怪!无故变高,问题来了,这是什么原因造成的呢?此时我尝试修改约束,将cell中的图片设置为宽高约束,比例为75:32,这个比例是正常图片显示的比例,运行以后发现图片显示正常了,至少没有被拉伸。但是cell的高度还是多了20像素。很显然,问题不是在这,既然高度变多了,那么倒不如把当前图片的宽高都打印出来看看到底有多少?不打不知道,打出来以后我惊呆了,在iPhone6上运行,cell的宽度居然是320,对!没错,是320的宽度,iPhone6宽度不是375吗?怎么变成了320呢?我试图尝试变换成其他设备来运行,结果。。。都是320的宽!!!好了,问题很明显了,顺着这个思路,我在网上查了查,惊奇的发现很多人都遇到了这样的问题,我在stackOver上看到了如下的回答:
It seems like you didn't provide correct launch screen images to your app. When there is no correct launch images set, the app will run like on iPhone 5/5S, that's whyyou are having these confusing results while logging. iPhone 6 screen size is 375x667 px scale x2, iPhone 6+ 414x736 px scale x3. So, if you want to set launch screen for iPhone 6 it should have 750x1334 px size, and 1242x2208 for iPhone 6+ respectively. Good Luck!
大致意思就是说造成这个问题的其实是启动图的问题,启动图如果设置错误的话,默认所有的尺寸都会转变成iPhone5的宽度尺寸,也就是320的宽度。看到这,估计大家也都明白了,启动图的原因造成的,我重新看了下自己的启动图,结果发现自己的启动图少了一个规格的,重新添上正确的启动图以后,发现运行正常,所有问题均得以解决。好了,这个问题算是告一段落了!