熟悉autolayout后可以再看这篇文章。这篇文章简单的叙述sizeClasses的原理和使用方法。
首先介绍下sizeClasses的基础知识。
1.Width与Height构成的九宫格。
九宫格中横向的表示Width,纵向为Height。
每一格的位置依次为Compact,Any,Regular
选中这里开始设置对应的布局
iOS 8下面设备界面可以描述为4种,但是这么多设备(iPhone4S,iPhone5/5s,iPhone6,iPhone6 Plus,iPad,Apple Watch)具体对应什么描述呢?经过查看官方文档和具体实践得知具体对应关系如下:
- 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)
布局完毕后需要注意w:Any h:Any时,设置的约束会与其他情况下设置布局的约束优先级不同而导致页面冲突的约束被替换掉。例如设置了左右约束,后来又在w:Any h:Any的情况下设置了长度的约束。可能就会导致冲突。
建议是如果只有单屏不考虑横竖屏切换的话,可以使用w:Any h:Any,如果需要各尺寸各屏幕设置,参考上面对应的设备去设置sizeClasses,设置玩以后最好不要再去设置w:Any h:Any