iPhone或者iPad的尺寸各有不同,同一个iphone横放或者竖放对View视图所拥有摆放空间也会有区别。 比如说,iPhone竖直方向摆放(Portriat画像)时,垂直方向位置较宽松,而水平方向位置较局促;如果把iPhone水平(Landscape风景)放置过来,情况则正好反过来。 为优化显示效果,我们需要根据当前的屏幕尺寸及摆放方向来调整显示安排。
Size Class用于解决布局优化
Swift提供了Size Class来进行此项优化。
首先,Size Class根据屏幕摆放方向进行了分类:
- 宽度: 水平方向(Width)
- 高度: 垂直方向(Height)
同时显示区域的宽松程度也分为两类:
- 常规: Regular
- 紧凑: Compact
这样组合起来一共分成四类:
- 常规 宽度, 常规 高度 (Regular Width, Regular Height)
- 紧凑 宽度, 常规 高度 (Compact Width, Regular Height)
- 常规 宽度, 紧凑 高度 (Regular Width, Compact Height)
- 紧凑 宽度, 紧凑 高度. (Compact Width, Compact Height)
苹果产品摆放组合对应的Size Class - 全屏显示
我们下面逐一列出分属每一类的产品型号:
常规 宽度, 常规 高度 (Regular Width, Regular Height)
所有的iPad,无论横置竖置,都属于这一类。iPad无论横竖摆放,显示空间都足够。紧凑 宽度, 常规 高度 (Compact Width, Regular Height)
所有的iPhone竖置(iPhone Portrait)都属于这一类。 iPhone竖放时,垂直空间足够,而水平空间比较局促,需要紧凑摆放。
iPhone横置(iPhone Landscape)时,垂直方向空间都比较局促,但水平方向情况不同,根据产品型号分别归属于下面两类:
- 常规 宽度, 紧凑 高度 (Regular Width, Compact Height)
以下型号的横置摆放(Landscape):
- iPhone 11/12/13 Pro Max
- iPhone Xs Max
- iPhone Xr
- iPhone 6s/7/8 Plus
- 紧凑 宽度, 紧凑 高度. (Compact Width, Compact Height)
以下型号的横置摆放(Landscape):
- iPhone 11/12/13
- iPhone 11/12/13 Pro
- iPhone 11/12/13 Mini
- iPhone Xs
- iPhone X
- iPhone 6s/7/8
- iPhone SE
- iPod touch
iPad多任务时的Size Class - 分屏显示
iPad进行多任务显示时,根据屏幕的划分比例定义了不同的size class。
- 紧凑宽度,常规高度(Compact width, regular height)
- 所有iPad竖置(Portrait) 1/3 分屏
- 所有iPad竖置(Portrait) 2/3 分屏
- 所有iPad(除了12.9寸iPad Pro)横置 (Landscape) 1/2 分屏
- 所有iPad横置(Landscape)1/3 分屏
- 常规宽度,常规高度(Regular width, regular height)
- 所有iPad横置(Landscape) 2/3 分屏
- 12.9寸 iPad Pro 横置 (Landscape) 1/2 分屏
- 未定义
- 所有iPad竖置(Portrait)1/2分屏
程序范例请见文章Swift编程-Size Class显示方向自适应布局范例