? ? ????最近公司項(xiàng)目需要適配iPad,就想到SizeClass,發(fā)現(xiàn)Xcode9中SizeClass和我以前學(xué)的時(shí)候不一樣了(很久以前了解過了),就邊百度邊在APP試,現(xiàn)在在這里分享下我的個(gè)人理解,如果有誤區(qū)請各路大神賜教 !
1、介紹圖
2、不同屏幕、方向?qū)?yīng)的類型 (wAny hAny 是所有類型)
2.1、iPhone4S/SE/6/X
2.2、iPhone6Plus
2.3、iPad(分全屏、split view)
3、如何選中各種類型
3.1、所有類型
????????如下圖,僅僅選了設(shè)備,沒有選擇Vary for Traits,這種類型就是 wAny hAny,在這種類型下做的操作是適配所有類型
3.2、wC hC類型(iPhone4S/SE/6/X 橫屏)
3.2.1、選中設(shè)備和方向
????????如下圖,1 選中設(shè)備iPhoneSE,2 選中橫屏,3 可以看到wC hC類型出來了,4 點(diǎn)擊Vary for Traits 開始決定是否適配wC 或 hC
3.2.2、選擇wC 或 hC
????????如下圖。Introduce Variations Based On: 如果只選中Width是 wC hAny類型,只選中Height是wAny hC類型,選中Width和Height是wC hC類型
3.2.3、進(jìn)入類型模式
? ? ? ? 如圖展示,已經(jīng)進(jìn)入wC hC類型
3.2.4、退出類型模式
? ? ? ? 操作完成后,必須點(diǎn)擊Done Varying按鈕,退出類型模式。如下圖。
3.3、wC hR類型(iPhone所有設(shè)備豎屏、iPad部分Split View下一部分:可對照如上2知識點(diǎn))
3.3.1、選擇設(shè)備和方向
? ? ? ? 如圖,1 選中iPhoneSE,2 選中橫屏,3 看到wC hR類型,4 點(diǎn)擊Vary for Traits
3.3.2、選中wC 或 hR
????????如下圖。Introduce Variations Based On: 如果只選中Width是 wC hAny類型,只選中Height是wAny hR類型,選中Width和Height是wC hR類型 (文字似曾相識啊,哈哈,和wC hC都一樣的)
3.3.3、進(jìn)入類型模式、退出類型模式
? ? ? ? 所有的類型模式進(jìn)入和退出都是一樣的,在這就不一一描述了。
3.4、wR hC類型 (iPhone6Plus/7Plus/8Plus)
? ? ? ? 同上面類型選擇
3.5、wR hR類型(iPad所有設(shè)備Full Screen)
? ? ? ? iPad和iPhone不同的是,iPad多了個(gè)選項(xiàng)adaptation,有Full Screen、Split View2/3、Split View1/3,是iPad特有的分屏模式,其他操作和前面的類型操作一樣。
4、一個(gè)控件適配不同類型(wC hC、wC hR、wR hC、wR hR)
4.0、在wAny hAny類型下添加一個(gè)控件
4.1、wC hC 類型下添加約束
? ? ? ? 首先切換到wC hC類型,就是選中iPhoneSE橫屏的 Width和Height,然后添加約束上面10,左邊0,如下圖
4.2、wC hR類型下添加約束
? ??????首先取消wC hC類型,再切換到wC hR類型,就是選中iPhoneSE豎屏的 Width和Height,然后添加約束上面20,左邊50,如下圖
4.3、wR hC類型和wR hR類型
? ? ? ? 和前面兩個(gè)類型都是一樣操作的。
????????iPhoneSE橫豎屏適配效果:
5、在不同類型添加控件
? ? ? ? 跟上面的操作大致相同,不同的是需要先切換到對應(yīng)的類型下再添加控件。
? ? ? ? 例:在wC hR下添加一個(gè)UILabel,在wC hC下添加一個(gè)UIButton
? ? ? ? 效果圖:
總結(jié):
? ? ? ? 現(xiàn)在看來,適配iPad不會很難,分清楚wAny hAny的各個(gè)類型思路就會很清晰(剛開始那個(gè)腦袋瓜子大的)。
????????到此,將我所了解到的總結(jié)在這里了。第一次寫博客,有些羞澀,??。希望和大家一起學(xué)習(xí),如果有誤區(qū)還望大神們不吝賜教,先感謝了!
參考文獻(xiàn):
iOS8--關(guān)于regular和compact的理解