iPhone XS,iPhone XR,iPhone XS Max,屏幕尺寸,其中iPhone XS的屏幕尺寸和iPhone X是一致的。
具體原理性的東西就多說了,因為iPhoneX系列都一樣,本文只說明一下具體怎么做,要適配屏幕,首先得讓他以正確的姿勢啟動,如果你使用的是LaunchScreen.storyboard,就不需要考慮這個了,但如果你使用的是LaunchImag,就需要提供正確的啟動圖。需要注意的是XR使用的@2x的圖。
啟動圖尺寸 ? ? ? 機型? ? ? ? ? ? ? ? ? 命名
640?×?960 ? ? ? iPhone4s? ? ? ? ? Default@2x
640?×?1136? ? ? iPhone5s? ? ? ? ? Default-568h@2x
750?×?1334? ? ? iPhone? ? ? ? ? ? ? Default-667h@2x
1242?×?2208? ? iPhonePlus ? ? ? Default-736h@3x
1125?×?2436? ? iPhoneX, XS? ? ? Default-812h@3x
828 x 1792? ? ? iPhoneXR? ? ? ? ? Default-828h@2x
1242 x 2688? ? iPhoneXS Max? ? Default-1242h@3x
本文提到的這四款手機都有一個共同的特點,就是“齊劉海”+底部觸摸條
針對這種樣式的屏幕,我們處理方法是一樣,幾個宏直接搞定(至于怎么判斷是不是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。
---------------------
作者:請不要叫我呆頭鵝
來源:CSDN
原文:https://blog.csdn.net/lg767201403/article/details/82683445
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!