iOS現在已經進入雜屏時代,想想5年前的320*480跟320*568...
在iPhone6的年代,我們多數的适配方案是簡單的縮放,然而現在已經進入齊劉海時代,這種方案已經不适合了,我們不得不使用别的适配方案,這裡簡單理一下自動布局+trait variations(size class)。
自動布局這裡就不提了,習慣于用storyboard布局的同學們肯定對它不陌生。筆者目前用的Xcode9+,為了支援iOS8,是以關閉safe area。
trait variations是size class的更新版,在Xcode8開始的,被要求适配齊劉海的同學肯定已經是Xcode9+了,是以我們就用trait variations稱呼這種技術。
蘋果為我們創造了一個概念,即Regular/Compact/Any,從字面上了解為:标準/緊縮/任何。
這個概念有點讓人摸不到頭腦,簡單點說,蘋果認為1024*768為iOS裝置的标準螢幕比例,目前iPad都是這種比例,是以任何iPad,無論橫豎屏,都是标準寬高,即wR hR。
iPhone裝置在豎屏情況下,一般成年人都可以一隻手橫向握住,我們可以認為蘋果得地為了讓我們能這樣握住,而對寬度由标準寬度進行了緊縮,是以目前所有iPhone豎屏都是wC hR。
iPhone橫屏情況下就有差別了,iPhone從6代開始有了Plus版本,也就是大屏版本,我們可以了解大屏版本的iPhone在橫屏情況下,一般人的手無法很舒服的橫向握住,是以所有Plus版本的iPhone在橫屏下是都是wR hC,豎屏下都是wC hR,非Plus版本橫屏都是wC hC。
當然,如果有的妖孽手足夠大,12.9 inch的iPad pro橫屏你都能輕松地一隻手橫向握住

,就不要用我上面說的方法來區分這個概念了...
了解了這個概念之後,我們就可以根據設計師的要求選擇每個view在哪種分類下被裝載,像這樣:
這個View隻有在wR hC下才會被裝載,也就是Plus版iPhone橫屏下才會顯示。
我們也可以為不同分類設定不同的字型,顔色等屬性:
非Plus版iPhone的橫豎屏
Plus版iPhone橫屏
iPad