SizeClass的使用介绍
SizeClass的使用介绍
一、 sizeclass的作用
sizeClass是苹果公司在ios8之后的系统中为了适应多屏幕尺寸而设计的开发方式,仅用于StoryBoard控件,有效解决iPone与iPod的屏幕问题,即一个应用会根据不同的屏幕尺寸(或者设备)添加不同的约束,满足用户的一般性审美原则。
1、 需要开发iPhone与iPod通用的程序(最重要的)
2、 该应用可以横屏(类如手游、其他的软件没有必要横屏)
二、 几种屏幕类型
屏幕选择器的模式(类似九宫格)compact:紧凑手机屏幕的各模式
Any:任意
Regular:宽松的
ipod(横/竖屏):Regular(height)+Regular(Width)
竖屏:w:Compact h:Compact
横屏:w:Compact h:Regular
iPhone6P
竖屏:w:Compact h:Regular
横屏:w:Regular h:Compact
landscape:横屏
portrait:竖屏
注意:不同的布局方式不可以有交集(如:AA与AC是不可以的)
总结:
1、如果项目不支持横屏显示,使用w:Compact h:Regular(或者直接取消使用sizeCalss)
三、 如何使用sizeClass
1、 检查是否打开SizeClass(新建的工程默认是打开的)打开(或者关闭)方式如图(Xcode7):勾选IB Document下的Usu Size Class
注意:仅仅在开发单一的iPhone软件时候没必要使用size Class
2、 使用技巧
1、 可以在不同布局样式(有两种方式:在选中某个控件的约束下,可以点击在工具栏的Constant的小加号,选择不同样式的约束,还有一种方式是在IB中选择下面的不同样是的sizeClass进行约束)下添加不同的约束
可以设置不用的边距,位置,以及控件的相对位置,新增或者删除某些控件,也可以从新进行UI布局,其他样式下的约束此时呈现灰色,不用管他。
2、 布局为Compact Any的样式适合于所有的iPhone,但是不适合与iPod
3、 一般情况下Any Any中的布局是适合任意尺寸的,不过还是可以做一些微调(比如说对于ipod)
4、 如何在其他样式中不显示某些控件或者约束?
在选中该控件的前提下,打开工具栏,点击下面的installed前的小加号,再选择对应的样式,installed的作用是否显示(不勾选则不显示)如下图,说明该选择控件在Compact Any下是不显示的,其他样式显示。
学习参考:ios8 AutoLayout与Size Class自悟
4、 布局为 Any Any 的样式适合于iPhone和iPod
注意:在使用约束的时候,如果想使边距为零,Pin中的 Constrain to margin 复选框不要勾选,否则还是会有边距。
5、 如果应用不横屏(或与iPod通用),最好取消SizeClass