iOS:iPhone XR、iPhoneXS、iPhone XS Max屏幕適配

2018年9月蘋果發佈了最新款iPhone,分別爲iPhone XR、iPhone XS和iPhone XS Max。
各大網站的測評和詳細參數都已有很多了,所以本文不在列舉這些。
在屏幕適配方面與iPhone X的適配完全一致,大家想了解詳細的可以查看這篇文章:
iOS11和iPhone X屏幕適配

iPhone劉海屏設備對比

名稱 屏幕分辨率 代碼獲取屏幕大小 使用幾倍圖
iPhone X 2436×1125 {375, 812} @3x
iPhone XR 1792x828 {414, 896} @2x
iPhone XS 2436×1125 {375, 812} @3x
iPhone XS Max 2688x1242 {414, 896} @3x

由上可知:
iPhone X和iPhone XS屏幕大小是一樣的,與iPhone 4.7寸屏系列,屏幕寬度一致,只是高度不一樣。
iPhone XR和iPhone XS Max屏幕大小是一樣的,與iPhone5.5寸屏系列,屏幕寬度一致,只是高度不一樣。
並且目前所有的劉海屏的上下安全距離大小是一樣的狀態欄高度爲44,底部高度爲34。
根據這些體徵,我們完全可以把對iPhone X的屏幕適配修,改爲對所有的劉海屏的屏幕適配。利用其高度的特殊性。
修改代碼如下:
OC代碼

//屏幕寬高
#define kScreenW [UIScreen mainScreen].bounds.size.width
#define kScreenH [UIScreen mainScreen].bounds.size.height
// 劉海屏 宏定義
#define iPhoneX ((kScreenH == 812.f || kScreenH == 896.f) ? YES : NO)
// 適配劉海屏狀態欄高度
#define CF_StatusBarHeight (iPhoneX ? 44.f : 20.f)
// 適配iPhone X 導航欄高度
#define CF_NavHeight (iPhoneX ? 88.f : 64.f)


// 適配iPhone X Tabbar距離底部的距離
#define CF_TabbarSafeBottomMargin (iPhoneX ? 34.f : 0.f)
// 適配iPhone X Tabbar高度
#define CF_TabbarHeight (iPhoneX ? (49.f+34.f) : 49.f)

Swift代碼

//屏幕寬高
public let kScreenW = UIScreen.main.bounds.size.width
public let kScreenH = UIScreen.main.bounds.size.height
// 劉海屏 宏定義
public let iPhoneX = ((kScreenH == 812.0) || (kScreenH == 896.0) ? true : false)
// 適配劉海屏狀態欄高度
public let CF_StatusBarHeight = iPhoneX ? 44.0 : 20.0
// 適配iPhone X 導航欄高度
public let CF_NavHeight = iPhoneX ? 88.0 : 64.0


// 適配iPhone X Tabbar距離底部的距離
public let CF_TabbarSafeBottomMargin = iPhoneX ? 34.0 : 0.0
// 適配iPhone X Tabbar高度
public let CF_TabbarHeight = iPhoneX ? (49.0 + 34.0) : 49.0
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章