天天看點

iOS開發日志:多螢幕适配

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橫屏你都能輕松地一隻手橫向握住

iOS開發日志:多螢幕适配

,就不要用我上面說的方法來區分這個概念了...

了解了這個概念之後,我們就可以根據設計師的要求選擇每個view在哪種分類下被裝載,像這樣:

iOS開發日志:多螢幕适配
iOS開發日志:多螢幕适配

這個View隻有在wR hC下才會被裝載,也就是Plus版iPhone橫屏下才會顯示。

我們也可以為不同分類設定不同的字型,顔色等屬性:

iOS開發日志:多螢幕适配
iOS開發日志:多螢幕适配
iOS開發日志:多螢幕适配
iOS開發日志:多螢幕适配

 非Plus版iPhone的橫豎屏

iOS開發日志:多螢幕适配

Plus版iPhone橫屏

iOS開發日志:多螢幕适配

iPad