项目中遇到了屏幕适配问题,,比如手机和ipad字体大小约束,设置了好了手机的,ipad的上的又不对,诸如此类的问题很多。
上面原本的Font栏就是设置的手机屏幕的字体大小
wRegular | hRegular: 就是设置的ipad下字体大小
同理,其他约束也可以分手机和ipad
比如:
随便一个约束双击进去
就可以设置不同屏幕下的约束。
原理:
此处转自http://www.cocoachina.com/ios/20141217/10669.html
iOS8推出的Size Class,可以让我们在一个工程的storyboard中进行所有尺寸屏幕的适配,不仅是iPhone 4s-5/5s-6-6 Plus,还包括iPad界面.它引入了一种新的概念,抛弃传统意义上我们适配时所谓的具体宽高尺寸,把屏幕的宽和高分别分成两种情况:Compact-紧凑, Regular-正常,Any - 任意。
Compact - 紧凑
就是屏幕空间相对较小,如iPhone竖屏时,水平方向是Compact,而垂直方向是Regular,这时候的取值是wCompact | hRegular。
Any - 任意
在Compact和Regular之间的值是Any, Any一般用于iPad布局,这时候的取值是wAny | hAny。
Regular - 正常
正常情况, 当iPhone横屏时,水平方向是Regular,而垂直方向是Compact, 这时候的取值为wRegular | hCompact。
* wCompact | hCompact: 适用于3.5英寸,4英寸,4.7英寸的iPhone的横屏情况。
* wAny | hCompact: 适用于垂直方向是Compact的情况,例如iPhone横屏。
* wRegular | hCompact: 适用于5.5英寸的iPhone的横屏情况。
* wCompact | hAny: 适用于所有的水平方向是Compact的情况,如3.5英寸,4英寸,4.7英寸的iPhone的竖屏情况。
* wAny | hAny: 适用于所有的布局情况,这是最后的选择。
* wRegular | hAny: 适用于所有的水平方向是Regular的情况,如iPad横屏和竖屏的情况。
* wCompact | hRegular: 适用于所有的iPhone竖屏情况。
* wAny | hRegular: 适用于所有的垂直方向是Regular的情况,如iPhone竖屏,iPad横屏和竖屏的情况。
wRegular | hRegular: 适用于所有的iPad横屏和竖屏的情况。
苹果给出了标准:
iPhone4S,iPhone5/5s,iPhone6:
竖屏:(w:Compact h:Regular)
横屏:(w:Compact h:Compact)
iPhone6 Plus:
竖屏:(w:Compact h:Regular)
横屏:(w:Regular h:Compact)
iPad:
竖屏:(w:Regular h:Regular)
横屏:(w:Regular h:Regular)
也就是说iPhone设备,6sp以下的机型,竖屏状态下,宽为compact 高为regular,横屏状态下,宽和高都是compact。6sp竖屏状态下,宽为compact 高为regualr,横屏状态下,横屏状态下,宽为regular,高为compact。iPad下不管横竖屏,宽和高都是regular。上述描述,都是针对的全屏状态(不包括iPad的分屏状态)