在以前,只要虽然苹果就由3.5寸跟4寸屏,但是宽度都是没有变化的,所以适配屏幕的问题还是很好做的。
现在因为4.7寸的iPhone6和5.5寸的iPhone6 plus的宽度大了,适配起来就更加麻烦了...
在网上找了很久,很多人说的都是图像、图标的像素问题,没有提到怎么适配。在这里简单说一下
归根到底,app适配多种屏幕有3种方法:
1. 做多套的storyboard,在appDelegate里面判断屏幕大小,从而判断到底到底加载哪一套storyboard,当然如果用到了xib也要做多 套。但是LZ用的时xcode6.1,居然发现了6、6plus的[UIScreen mainScreen].bounds.size 跟5s的时一模一样的...都是320x568...这到底是要闹哪样
。。。。
但是这样还是能辨别出4s跟5的,这里给出宏定义。
#define iPhone4inch ([UIScreen mainScreen].bounds.size.height == 568.0 && [UIScreen mainScreen].bounds.size.width == 320) ? YES : NO
#define iPhone3p5inch ([UIScreen mainScreen].bounds.size.height == 480.0 && [UIScreen mainScreen].bounds.size.width == 320) ? YES : NO
#define iPhone4p7inch ([UIScreen mainScreen].bounds.size.height == 667.0 && [UIScreen mainScreen].bounds.size.width == 375) ? YES : NO
#define iPhone5p5inch ([UIScreen mainScreen].bounds.size.height == 736.0 && [UIScreen mainScreen].bounds.size.width == 414) ? YES : NO
之后在两套storyboard的对应controller里面用一样的Id
if (iPhone4inch)
{
storyboard = [UIStoryboard storyboardWithName:@"Main_4inch" bundle:[NSBundle mainBundle]];
}
<span style="font-family: Arial, Helvetica, sans-serif;">self.controller = [storyboard instantiateViewControllerWithIdentifier:@"1"];</span>
关于如何适配iPhone6、iPhone6 plus在下一篇里面讲一下