1. 程式人生 > >iOS-12 iPhone XS Max 和iPhone XR新螢幕簡單適配方式

iOS-12 iPhone XS Max 和iPhone XR新螢幕簡單適配方式

在新的機器釋出之後,我們需要對更大的劉海螢幕做適配,以下是需要新適配的機型:

型號 邏輯尺寸 係數 解析度
iPhone XR 414pt * 896pt @2 828px * 1792px
iPhone XS Max 414pt * 896pt @2 1242px * 2688px
  • 判斷 iPhoneX or later 裝置

不使用size來進行判斷。 iPhoneX、iPhone XR、iPhone Xs、iPhone Xs Max 底部有安全距離所以可以使用 safeAreaInsets.bottom > 0.0 進行判斷。

第一種:

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

第二種方式

+ (BOOL)isIPhoneXSeries
{
    CGFloat screenHeight = [UIScreen mainScreen].bounds.size.height;
    if (screenHeight == 821.0f || screenHeight == 896.0f) {
        return YES;
    }
    return NO;
}

Tips: iPhone Xs 和iPhone X size相同。 只需要適配iPhone Xs Max、 iPhone XR即可

  • 歷代iPhone的解析度和邏輯尺寸如圖

可以從圖中看到所有的螢幕詳細引數 在這裡插入圖片描述

  • 導航欄、tabbar解決方案

可以使用一些常用的常亮進行通用巨集定義 在這裡插入圖片描述

寫分類,或者直接使用整合實現導航欄和tabbar存在時候的佈局 在這裡插入圖片描述