<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          適配 iPhone XR/iPhone XS Max

          共 1808字,需瀏覽 4分鐘

           ·

          2018-09-14 19:39

          快速適配先說結(jié)論,找設(shè)計(jì)師要2張啟動(dòng)圖:

          iPhone XR:828px x 1792px
          iPhone XS Max: 1242px x 2688px

          代碼中使用了屏幕size判斷是否是iPhone X的需要修改,請翻到最后。

          LaunchImage中只有iPhone X/iPhone XS

          XCode GM Bug?

          項(xiàng)目中使用LaunchImage來做啟動(dòng)圖,那么有可能在XCode GM的LaunchImage中會(huì)出現(xiàn)只有iPhone X/iPhone XS啟動(dòng)圖,并且 iOS 8.0 and Later 沒有被選中,并且沒有iPhone XR/iPhone XS Max,需要手動(dòng)選擇一下 iOS 8.0 and Later,才會(huì)出現(xiàn)iPhone XR/iPhone XS Max啟動(dòng)圖。 這可能是XCode GM中的一個(gè)Bug。

          XCode9 LaunchImage

          XCode10 GM LaunchImage?iOS 8.0 and Later沒有被選中

          XCode10 GM LaunchImage?iOS 8.0 and Later 手動(dòng)選中才出現(xiàn) iPhone XR/iPhone XS Max

          iPhone XR / XS Max 對老版本兼容請求

          如果沒有設(shè)置iPhone XR/iPhone XS Max啟動(dòng)圖但設(shè)置了iPhone X的啟動(dòng)圖,iPhone XR / XS Max默認(rèn)會(huì)走iPhone X 的尺寸375ptx812pt,會(huì)對內(nèi)容近乎于等比拉伸放到iPhone XR / XS Max屏幕內(nèi),如下圖:

          這里為什么說是近乎于等比拉伸: iPhone X 高寬比:812/375 = 2.16533333 iPhone XR 和 iPhone XS Max 高寬比:896/414 = 2.16425121

          iPhone XR / XS Max 屏幕尺寸

          iPhone XR414pt x 896pt@2828px x 1792px
          iPhone XS Max414pt x 896pt@31242px x 2688px

          當(dāng)時(shí)看發(fā)布會(huì)覺得XR 828px的分辨率有點(diǎn)奇怪,現(xiàn)在看來并不是蘋果不想做720或1080,而是有照顧開發(fā)工程師的目的。 XR 和 XS Max 在邏輯大小上非常統(tǒng)一2x,3x就夠了,也不用做其他的切圖。

          所以現(xiàn)在只是需要設(shè)計(jì)師給2張效果圖:
          iPhone XR:828px x 1792px
          iPhone XS Max: 1242px x 2688px

          Tips

          1. 代碼中判斷是否是iPhone X時(shí)需要注意

          如果你以前是使用設(shè)備尺寸來判斷iPhone X那就需要修改了,判斷iPhone X主要是因?yàn)閯⒑5脑蚩赡芤鲂┨厥馓幚?。鑒于iPhone X/XS/XR/XS Max底部都會(huì)有安全距離,所以可以利用safeAreaInsets.bottom > 0.0來判斷是否是iPhone X。

          safeAreaInsets支持iOS11及以后。

          static inline BOOL isIPhoneX() {
              BOOL iPhoneX = NO;
              if (UIDevice.currentDevice.userInterfaceIdiom != UIUserInterfaceIdiomPhone) {
                  return iPhoneX;
              }
              
              if (@available(iOS 11.0, *)) {
                  UIWindow *mainWindow = [[[UIApplication sharedApplication] delegate] window];
                  if (mainWindow.safeAreaInsets.bottom > 0.0) {
                      
                      iPhoneX = YES;
                  }
              }
              
              return iPhoneX;
          }

          參考文檔

          Detect if the device is iPhone X
          《Tech Talks - Session 207》


          作者:Shanesun

          鏈接:https://juejin.im/post/5b9a4b62e51d450e6f2e255b

          來源:掘金

          瀏覽 68
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产精品免费人成人网站酒店 | 激情婷婷丁香 | 日韩无码一级片 | 夜夜性日日交XXX | 老色鬼久久综合 |