个人做的业务原因,在开发中基本没有使用过SizeClass,在这里跟着一些教程来实践一下
平时布局以autolayout为主,个人理解SizeClass主要针对横竖屏和iPad的屏幕进行布局约束
屏幕分类
Compact(紧凑)、Regular(常规)
对于不同大小的屏幕和横竖屏情况,分为如下四种情况:
-
w:C h:R: 宽度紧凑,高度常规
代表所有iPhone尺寸的竖屏状态 -
w:C h:C: 宽度紧凑,高度也紧凑
代表iPhone6及比它小的屏幕尺寸再加上iPhoneX的横屏状态 -
w:R h:C: 宽度常规,高度紧凑
代表iPhone6P及比它大的屏幕尺寸的横屏状态,去掉iPhoneX -
w:R h:R: 宽度常规,高度也常规
代表iPad的横竖屏
any代表不区分常规或紧凑,默认情况下添加的约束就是w:any h:any,这个约束适用于所有的iPhone和iPad的横竖屏状态
image.pngw:R h:C类型
Vary canvas edits for:
只选择Width: w:R h:any
只选择Height: w:any h:C
选择Width和Height: w:R h:C
image.png
w:C h:C类型
Vary canvas edits for:
只选择Width: w:C h:any
只选择Height: w:any h:C
选择Width和Height: w:C h:C
image.png
其他类型同理
一个控件适配不同类型(上述四种)
-
任选一个设备,在w:any h:any下添加一个控件,如下图
w:any h:any -
w:C h:R类型添加约束
切换到w:C h:R类型,就是选中iPhone 8Plus竖屏的Width和Height,点击Vary for Traits进入编辑模式,然后添加约束,再点击Done Varying结束编辑
image.png -
w:C h:C类型添加约束
选择iPhone SE 横屏的Width和Height,添加约束
image.png -
w:R h:C
选择iPhone 8Plus横屏的Width和Height,添加约束
image.png
效果:
image.png image.png
不同类型下添加控件
操作方式与上述大致相同,只是先切换到不同类型下再添加控件
image.png image.png效果:
wC hC wC hR
网友评论