iPhone ?X適配問題

iPhone X

昨天預(yù)購的手機到貨了寸认,興奮不已。興奮過后串慰,下載了我之前的用的各種APP 偏塞,結(jié)果。模庐。烛愧。。不說了,直接上圖怜姿!


貓眼

發(fā)現(xiàn)并沒有適配到上邊的劉海慎冤,下邊的操控區(qū)域也是一片黑。這是什么原因?qū)е碌牟茁科鋵嵕褪蔷W(wǎng)絡(luò)上已經(jīng)傳了很久的安全區(qū)域的問題蚁堤。

什么是安全區(qū)域

引用一段蘋果官方的話

All apps should adhere to the safe area and layout margins defined by UIKit, which ensure appropriate insetting based on the device and context,The safe area also prevents content from underlapping the status bar, navigation bar, toolbar, and tab bar

大體意思就是說所有的APP 應(yīng)該去適應(yīng)UIKit所定義的安全區(qū)域和布局間隔但狭。安全區(qū)域可以保證所有控件顯示在一個正確的位置披诗。下圖顯示了安全區(qū)域的位置


藍色區(qū)域為安全區(qū)域

iOS 11中,蘋果推出SafeAreaLayoutGuide 取代了 bottomLayoutGuide 和 topLayoutGuide立磁,對于已經(jīng)使用了 bottomLayoutGuide 和 topLayoutGuide 的布局來說呈队,單純使用 safeAreaLayoutGuide 可以完成一樣的工作,同時也可以完美適配 iPhone X 的布局唱歧。使用 Auto Layout 布局的話宪摧,safe area 就相對于一個處于每個 view controller 的視圖層級底層的容器,我們的子控件只需要和它建立約束關(guān)系颅崩,就可以完美適配 iPhone X 安全區(qū)域


上下左右依附在safe area几于,而不是以前的屏幕


效果圖

安全區(qū)域編程

如果使用代碼進行布局,對于 safe area 適配也不會復(fù)雜沿后。iOS 11 中 UIView 的新 API SafeAreaInsets 和 UIViewController 的新 API additionalSafeAreaInsets 能夠很方便地解決代碼布局的適配問題沿彭。

var safeAreaInsets: UIEdgeInsets { get }?
You might use this property at runtime to adjust the position of your view's content programmatically

另一個新的 API additionalSafeAreaInsets 則提供給開發(fā)人員能夠自主擴展 safe area 區(qū)域的能力。顧名思義尖滚,如果對這個屬性主動賦值喉刘,那么整個視圖的 safe area 區(qū)域便會發(fā)生變化。

var additionalSafeAreaInsets: UIEdgeInsets { get set }
Use this property to adjust the safe area insets of this view controller's views by the specified amount. The safe area defines the portion of your view controller's visible area that is guaranteed to be unobscured by the system status bar or by an ancestor-provided view such as the navigation bar.
You might use this property to extend the safe area to include custom content in your interface. For example, a drawing app might use this property to avoid displaying content underneath tool palettes

調(diào)用時機

If the view is not currently installed in a view hierarchy, or is not yet visible onscreen, the edge insets in this property are 0.

官方的意思是如果一個視圖沒有加載到視圖層級或者屏幕可視化熔掺,屬性會返回0饱搏。換句話說非剃,這個屬性只有在視圖初始化以后才能賦值置逻。

具體的,這個屬性只有在viewDidLayoutSubviews和viewDidAppear才會生成备绽,而在loadView? viewDidLoad? viewWillAppear是不會生成的券坞。

Home Indicator

Home indicator 的設(shè)置類似于 prefersStatusBarStyle,iOS 11 增加了 UIViewController 的一個 UIHomeIndicatorAutoHidden 分類來控制 home 鍵的自動隱藏肺素。通常在全屏播放視頻恨锚,全屏游戲等場景下會需要用到此特性。

常見高度


常見高度
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末倍靡,一起剝皮案震驚了整個濱河市猴伶,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖他挎,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件筝尾,死亡現(xiàn)場離奇詭異,居然都是意外死亡办桨,警方通過查閱死者的電腦和手機筹淫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來呢撞,“玉大人损姜,你說我怎么就攤上這事∈庀迹” “怎么了摧阅?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長绷蹲。 經(jīng)常有香客問我逸尖,道長,這世上最難降的妖魔是什么瘸右? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任娇跟,我火速辦了婚禮,結(jié)果婚禮上太颤,老公的妹妹穿的比我還像新娘苞俘。我一直安慰自己,他們只是感情好龄章,可當(dāng)我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布吃谣。 她就那樣靜靜地躺著,像睡著了一般做裙。 火紅的嫁衣襯著肌膚如雪岗憋。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天锚贱,我揣著相機與錄音仔戈,去河邊找鬼。 笑死拧廊,一個胖子當(dāng)著我的面吹牛监徘,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播吧碾,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼凰盔,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了倦春?” 一聲冷哼從身側(cè)響起户敬,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤落剪,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后尿庐,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體著榴,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年屁倔,在試婚紗的時候發(fā)現(xiàn)自己被綠了脑又。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡锐借,死狀恐怖问麸,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情钞翔,我是刑警寧澤严卖,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站布轿,受9級特大地震影響哮笆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜汰扭,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一稠肘、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧萝毛,春花似錦项阴、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至庵佣,卻和暖如春歉胶,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背巴粪。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工通今, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人验毡。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓衡创,卻偏偏與公主長得像,于是被迫代替她去往敵國和親晶通。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,612評論 2 350

推薦閱讀更多精彩內(nèi)容