且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

iOS开发技巧 - Size Class与iOS 8多屏幕适配(一)

更新时间:2021-11-18 23:51:54

0. 背景:

在iOS开发中,Auto Layout(自动布局)能解决大部分的屏幕适配问题。 但是当iPhone 6和iPhone 6 Plus发布以后, Auto Layout已经不能解决复杂的屏幕适配问题了,

因此, 在iOS 8以后苹果推出了Size Class, 它是基于Auto Layout技术的。

 

1. Size Class的开启和使用

与Auto Layout不同, Size Class不能通过代码编程管理,只能通过IB(Interface Builder)使用。

默认情况下Story Board等布局文件已经开启了Size Class,如果没有开启,可以选中Story Board->文件检查器->选中Use Size Classes

->点击布局工具栏的Size Class按钮(wAny|hAny),将弹出Size Class菜单。

 

2. Size Class的九宫格

Size Class菜单是一个九宫格,可以组合出9种情况,每一种情况应对不同的布局。

 

wCompact | hCompact

 

 

wAny | hCompact

 

 

wRegular | hCompact

 

 

wCompact | hAny

  

 

wAny | hAny

 

 

wRegular | hAny

 

 

wCompact | hRegular

 

 

wAny | hRegular

 

 

wRegular | hRegular

 

Compact - 紧凑

就是屏幕空间相对较小,如iPhone竖屏时,水平方向是Compact,而垂直方向是Regular,这时候的取值是wCompact | hRegular。

 

Any        - 任意

在Compact和Regular之间的值是Any, Any一般用于iPad布局,这时候的取值是wAny | hAny。

 

Regular  - 正常

正常情况, 当iPhone横屏时,水平方向是Regular,而垂直方向是Compact, 这时候的取值为wRegular | hCompact。 

 

* wCompact | hCompact: 适用于3.5英寸,4英寸,4.7英寸的iPhone的横屏情况。

* wAny | hCompact:        适用于垂直方向是Compact的情况,例如iPhone横屏。

* wRegular | hCompact:  适用于5.5英寸的iPhone的横屏情况。

* wCompact | hAny:       适用于所有的水平方向是Compact的情况,如3.5英寸,4英寸,4.7英寸的iPhone的竖屏情况。

* wAny | hAny:              适用于所有的布局情况,这是最后的选择。

* wRegular | hAny:        适用于所有的水平方向是Regular的情况,如iPad横屏和竖屏的情况。

* wCompact | hRegular: 适用于所有的iPhone竖屏情况。

* wAny | hRegular:        适用于所有的垂直方向是Regular的情况,如iPhone竖屏,iPad横屏和竖屏的情况。

wRegular | hRegular:     适用于所有的iPad横屏和竖屏的情况。