iOS8应用在界面设计时,使用:Size Classes
iOS6引入了Auto Layout
,使用约束进行布局
对Auto Layout
的评价:只是一个根据约束来布局的方案,而在对应不同设备的具体情况下的体验上还有欠缺。一个最明显的问题是它不能根据设备类型来确定不同的交互体验。很多时候你还是需要判断设备是iPhone还是iPad,以及现在的设备方向是竖直的还是水平来做出判断。
所以在iOS8里,苹果引入了一整套新的理念,来适应设备不断的发展,这就是Size Classes
。
不再根据设备屏幕的具体尺寸来进行区分,而是通过它们的感官表现,将其分为普通()和紧凑()两个种类。开发者便可以无视具体的尺寸,而是对这两类和它们的组合进行适配。
在Xcode中设计时,设计面板如下:
为了表征Size Classes,Apple在iOS8中引入了一个新的类,UITraitCollection。这个类封装了像水平和竖直方向的Size Class等信息。iOS8的UIKit中大多数UI的基础类(包括UIScreen,UIWindow,UIViewController和UIView)都实现了UITraitEnvironment协议,通过其中的traitCollection这个属性,可以拿到对应的UITraitCollection对象,从而得到当前的Size Class。