sizeclass
将苹果设备的宽和高分为紧凑和正常两大类进行适配
- 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
2.拖一个button到控制器里,设置相应约束。
3.切换到iPhone横屏时的sizeclass
发现视图里并没有button,左边栏里的按钮呈灰色
4.选择第三部的➕号
由于已经切换到了横屏的sizeclass,所以默认会给你提供对应的sizeclass,否则要在下面三项里自己选
勾选Installed
发现有约束错误,因为还没有为横屏状态的button设置约束
设置好居中的约束后错误消失,已经实现了在竖屏时在左上角,横屏时居中的效果
以上操作在Xcode 7.2中完成
vary for traits
Xcode8 以后原先sizeclass的地方换成了 vary for traits
点击vary for traits 可以选择针对不同的设备进行布局
选中iphone竖屏时
选中iPhone横屏时
记得约束设置完成之后再点击Done varying
实现上面的功能步骤大致相同
相关设置上比sizeclass可以更方便的设置背景颜色等属性
以上在Xcode8.2.1上完成