sizeclass
将苹果设备的宽和高分为紧凑和正常两大类进行适配
![](https://img.haomeiwen.com/i1834445/56832e7f6cd93f9f.png)
- 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) - Apple Watch(猜测)
竖屏:(w:Compact h:Compact)
横屏:(w:Compact h:Compact)
让一个按钮在iPhone竖屏时在左上角,iphone横屏时在正中间,步骤如下:
1.先选定对应的sizeclass
![](https://img.haomeiwen.com/i1834445/283d6484762d1e38.png)
2.拖一个button到控制器里,设置相应约束。
![](https://img.haomeiwen.com/i1834445/1eb31ccd509f438d.png)
3.切换到iPhone横屏时的sizeclass
![](https://img.haomeiwen.com/i1834445/8f4ea863d0927636.png)
发现视图里并没有button,左边栏里的按钮呈灰色
4.选择第三部的➕号
![](https://img.haomeiwen.com/i1834445/2bdd00df9b6a8e8d.png)
由于已经切换到了横屏的sizeclass,所以默认会给你提供对应的sizeclass,否则要在下面三项里自己选
![](https://img.haomeiwen.com/i1834445/9c583c2690f95b0e.png)
勾选Installed
![](https://img.haomeiwen.com/i1834445/dd8e4c8960e2eadf.png)
发现有约束错误,因为还没有为横屏状态的button设置约束
![](https://img.haomeiwen.com/i1834445/c126ab64722799a6.png)
设置好居中的约束后错误消失,已经实现了在竖屏时在左上角,横屏时居中的效果
以上操作在Xcode 7.2中完成
vary for traits
Xcode8 以后原先sizeclass的地方换成了 vary for traits
点击vary for traits 可以选择针对不同的设备进行布局
选中iphone竖屏时
![](https://img.haomeiwen.com/i1834445/7a6af8df02c17ef7.png)
![](https://img.haomeiwen.com/i1834445/5f44c9167241e803.png)
![](https://img.haomeiwen.com/i1834445/a6663b30731e7319.png)
选中iPhone横屏时
![](https://img.haomeiwen.com/i1834445/8ed6d57cd1a79b6f.png)
![](https://img.haomeiwen.com/i1834445/eb99f8da3a93ce42.png)
![](https://img.haomeiwen.com/i1834445/b3b3538fdd187db6.png)
记得约束设置完成之后再点击Done varying
实现上面的功能步骤大致相同
![](https://img.haomeiwen.com/i1834445/059724a98fdedd16.png)
相关设置上比sizeclass可以更方便的设置背景颜色等属性
以上在Xcode8.2.1上完成
网友评论