1. 程式人生 > >iOS ---【開發適配iPhone XS, iPhone XS Max, iPhone XR】

iOS ---【開發適配iPhone XS, iPhone XS Max, iPhone XR】

總結為以下幾點:

一、   螢幕大小適配

三款手機,分別是iPhone XS,iPhone XR,iPHone X Max,其中iPhone XS的螢幕尺寸和iPhone X的是一致的,另外兩款都有了新的尺寸,具體尺寸如下

具體原理性的東西就多說了,因為iPhoneX系列都一樣,本文只說明一下具體怎麼做,要適配螢幕,首先得讓他以正確的姿勢啟動,如果你使用的是LaunchScreen.storyboard,就不需要考慮這個了,但如果你使用的是LaunchImag,就需要提供正確的啟動圖。需要注意的是XR使用的@2x的圖。

啟動圖尺寸       機型                  命名

640 × 960       iPhone4s          [email protected]

640 × 1136      iPhone5s          [email protected]

750 × 1334      iPhone              [email protected]

1242 × 2208    iPhonePlus       [email protected]

1125 × 2436    iPhoneX, XS      [email protected]

828 x 1792      iPhoneXR         

[email protected]

1242 x 2688    iPhoneX Max    [email protected]

本文提到的這四款手機都有一個共同的特點,就是“齊劉海”+底部觸控條

針對這種樣式的螢幕,我們處理方法是一樣,幾個巨集直接搞定 怎麼判斷是不是iPhone X? 獲取當前螢幕寬度或高度與尺寸進行比較就可以了

#define kNavBarHeight              (iphoneX ? 88.0 : 64.0) #define kBottomBarHeight        (iphoneX ? 34.0 : 0) #define kContentHeight             (kScreenHeight - kNavBarHeight-kBottomBarHeight)

針對繼承自UIScrollView的,需要處理一下內邊距

第一步:關閉自動調整內邊距 if (@available(iOS 11.0, *)) {         [UIScrollView appearance].contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; }

第二步:在使用的地方手動設定內邊距(千萬別全域性設定,容易出事) self.scrollView.contentInset = UIEdgeInsetsMake(0, 0, kBottomBarHeight, 0); 這樣設定以後,底下的觸控區域就能正常顯示內容了,而且當UIScrollView滑到最底部的時候,不會被遮住。

除此之外,有些比較大的控制元件,產品會要求按照螢幕比例進行調整,小螢幕的顯示的小一點,大螢幕的顯示大一點,這個也是兩個巨集搞定 #define kScaleH                   (kScreenHeight/667.0) #define kScaleW                  (kScreenWidth/375.0) 解釋一下為什麼除的667和375,因為UI給的設計圖示按照667 * 375的螢幕給的,如果你們的UI小姐姐給的設計圖是按照iPhone5s的尺寸設計的,分母就要換成568和320。

二、老生常談的安全區域(Safe Area)

這裡著重說明了一下collectionView

豎屏展示的內容:

橫屏展示內容:

解決辦法:

  • 1.如果使用storyBoard或者xib的話,需要在collectionView上,勾選Safe Area。

  • 2.如果使用程式碼的話,橫屏新增適配程式碼即可(比較簡單,自行百度吧)。

三、推薦使用Auto Layout。

Apple公司已經數次提及Auto Layout在新版本的使用中,效能非常好,不過考慮國內公司目前的情況,純用Auto Layout開發的公司少之又少,純用storyBoard和Xib開發的公司更是少之又少。

四、新增UISplitViewController