iOS開發--利用Safe Area 適配iPhone X

來源:互聯網
上載者:User

標籤:先來   pre   add   origin   load   系統   real   eai   play   

最近做iPhone X的適配,發現了一些規律,總體來說適配還是很簡單的

iPhone X 頂部的狀態列,也就是安全區距離頂部的高度為 44px;其他的iPhone都為 20px,

iPhone X安全區距離底部的高度為34px

在xcode9中增加了Safe Area

先來瞭解下

safeAreaLayoutGuide

首先我們看看什麼是safeAreaLayoutGuide


 

看起來複雜,其實很簡單,我歸納一下有幾點:

  1. 它是UIView的一個唯讀屬性,意味著所有UIView對象都有並且是系統幫我們建立好的
  2. 它繼承UILayoutGuide,有layoutFrame意味著它能代表一塊地區
  3. 它代表的地區避開了諸如導覽列、tabbar或者其他有可能擋住你這個UIView對象顯示的所有父view,意味著你的view對象只要相對另一個view的safeLayoutGuide做布局就不用擔心她被奇奇怪怪的東西擋住
  4. 對於控制器的view的safeAreaLayoutGuide,他的地區同樣避開了statusbar或其他有可能擋住view顯示的東西,我們甚至可以用控制器的additionalSafeAreaInsets屬性,來額外指定inset
  5. 如果view完全在父view的安全區域內,或者view不在視圖層級或螢幕上,那麼view的safeAreaLayoutGuide地區其實和view自身是一樣大的

safeAreaLayoutGuide是一個相對抽象的概念,為了便於理解,我們可以把safeAreaLayoutGuide看成是一個“view”,這個“view”系統自動幫我們調整它的bounds,讓它不會被各種奇奇怪怪的東西擋住,包括iPhone X的劉海地區和底部的一道杠地區,可以認為在這個“view”上一定能完整顯示所有內容。

以下綠色部分就是當前控制器view的safeAreaLayoutGuide地區
iphone X豎屏safeAreaLayoutGuide的bounds

 


iPhone X橫屏safeAreaLayoutGuide的bounds


 

iOS開發--利用Safe Area 適配iPhone X

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.