iPhone X 適配《一》

注意:本文為原創(chuàng),如需轉載請聯系作者。

隨著時間的推移,我們盼的iPhone X 開售的日子也越來越近,大家是不是還有一點小激動呢。激動歸激動,對與像和我一樣是iOS程序來說也是為iPhone X做適配的時候了。

為此我觀看了蘋果官方的講解視頻,有興趣的朋友請點擊這里進行觀看,如果不想觀看視頻的請往下看,我已把精華提取出來。

下面我根據蘋果官方的WWDC app來總結三條需要注意的地方。

第一條:

如果我們的app中有類似預覽相冊的功能,那么在沒有處理的情況下,在iPhone X上面運行的時候會出現如(圖1)的問題。


圖1

我們可以一眼就看出來問題所在,就是兩個控件相隔太近。
解決辦法如下:
第一步根據(圖2)中箭頭所指勾選 Use Safe Area Layout Guides選項。


圖2

第二步根據(圖3)首先點擊箭頭1所指向,看箭頭2是否變色,如果變色說明已經勾選,然后點擊箭頭三所指向的First Item會彈出如(圖4)的下拉框。
圖3

舍棄SuperView選中Safe Area。


圖4

然后運行效果如(圖5)
圖5

大功告成,完美。

第二條:

如果在你的app中有如下(圖6)的搜索按鈕,那么在iPhone X 中可能出現如(圖7 和 圖8)的問題。

圖6
圖7
圖8

而我們想要的效果是如(圖9)在豎屏情況下應該和自帶的電話本一樣的效果。

圖9

下圖(圖10)是搜索欄的舊代碼部分。

圖10

我們做兩處修改,第一步,對于這個視圖控制器,不顯示搜索控制器,而是把它交給UINavigationItem;第二步,將搜索控制器的“isActive”屬性設置為“true”,這樣會使導航欄激活搜索控制器并開始編輯。注意:我們可以使用“Availability Support”這項功能讓設置僅對iOS 11 有效,而在舊版的系統(tǒng)中保留現有的效果。修改后的代碼如下圖(圖11)所示。


圖11

然后我們運行后效果如下所示(圖12 和 圖 13)


圖12
圖 13

大功告成,完美。

第三條:

如(圖14)該頁面用UITableView來布局,在豎屏模式下看起來不錯,雖說這里的搜索欄顯示也不太對,這個搜索欄恰好是作為Header視圖插入到表格視圖的,

圖14

但是我們可以像剛才一樣改動(如圖15),

圖15

也就是讓搜索欄集成到導航欄中,在設置合適的活動狀態(tài),然后我們運行,豎屏看起來不錯(如圖16),

圖16

但是如果我們橫屏,搜索欄看起來也不錯(如圖17),但是用在表格區(qū)域的Header有問題,就是顏色沒有延伸到屏幕邊緣。

圖17

根據代碼(圖18)我們可以看到,背景顏色是設置在了contentView上,但是這種做法在iPhone X 是不行的。

圖18

我們打開如下圖(圖19)界面查看圖層布局,

圖19

為了更好的理解和查看,把重要元素提取出來如下圖(圖20),在圖中我們可以看到,有個勾選項Inserts To Safe Area ,我們可以取消勾選(如果是代碼布局,也可以通過屬性來調用)用以實現背景色延伸到屏幕邊緣,但是如果是使用這種方法,那么content View上面的控件也會移動,所以說這種方法不可取。

圖20

在這里我們有更為簡單的處理方法,代碼如下(圖21),我們直接設置它的backgroundView的顏色就好了。

圖21

然后我們從新運行看效果(圖22)

圖22

大功告成,完美。

通過這三個問題,和解決辦法,大家也應該看出來問題所在,其實對iPhone X 的UI布局來說,最主要就是Safe Area 這個東西。然而還有一個Layout Margin屬性,在這里我們就先不做過多的敘述,具體的分布圖如下(圖23),想要詳細了解的可以去查看蘋果開發(fā)文檔,或者網上搜索。

圖23

最后再做一點總結:

第一:遵循iOS 11 SDK,并且使用Launch Storyboard ,可以讓你的app使用原生全分辨率。
第二:然后豎屏模式下也可能會遇到一些問題,但大多數問題都處在橫屏模式下,所以如果app支持橫豎屏切換,一定要旋轉一下界面測試UI布局,既要測試左旋轉,也要測試右旋轉。
第三:遵循Safe Area 可以避免大多數問題,Auto Layout 和 safeAreaLayoutGuides可以自動解決很多排版方面的問題,但是如果是手動布局也可以使用Safe Area 嵌入自由計算所需要的布局數據,這些屬性都可以通過UIView類進行訪問。
第四:最終要的一點,就是不要讓控件干擾到屏幕底部的主屏幕指示器(就是那個橫線)。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容