美文网首页
iOS 刘海屏界面适配

iOS 刘海屏界面适配

作者: lemonCool | 来源:发表于2021-03-03 15:53 被阅读0次

iPhoneX - iPhone12 界面适配

///写到pch文件内
//判断ipad
#define isPad ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad)
//判断iPhoneX
#define IS_IPHONE_X ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) && !isPad : NO)
//判断iPHoneXr
#define IS_IPHONE_Xr ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(828, 1792), [[UIScreen mainScreen] currentMode].size) && !isPad : NO)
//判断iPhoneXs
#define IS_IPHONE_Xs ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) && !isPad : NO)
//判断iPhoneXs Max
#define IS_IPHONE_Xs_Max ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1242, 2688), [[UIScreen mainScreen] currentMode].size) && !isPad : NO)
//判断iPhone 11
#define IS_IPHONE_Xr ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(828, 1792), [[UIScreen mainScreen] currentMode].size) && !isPad : NO)
//判断iPhone SE
#define IS_IPHONE_SE ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(750, 1334), [[UIScreen mainScreen] currentMode].size) && !isPad : NO)
//判断iPhone 12 mini
#define IS_IPHONE_12mini ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1080, 2340), [[UIScreen mainScreen] currentMode].size) && !isPad : NO)
//判断iPhone 12
#define IS_IPHONE_12 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1170, 2532), [[UIScreen mainScreen] currentMode].size) && !isPad : NO)
//判断iPhone 12 Pro
#define IS_IPHONE_12Pro ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1170, 2532), [[UIScreen mainScreen] currentMode].size) && !isPad : NO)
//判断iPhone 12 Pro Max
#define IS_IPHONE_12ProMax ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1284, 2778), [[UIScreen mainScreen] currentMode].size) && !isPad : NO)

适配判断刘海屏幕

//适配判断刘海屏幕
#define kIsBangsScreen ({\
    BOOL isBangsScreen = NO; \
    if (@available(iOS 11.0, *)) { \
    UIWindow *window = [[UIApplication sharedApplication].windows firstObject]; \
    isBangsScreen = window.safeAreaInsets.bottom > 0; \
    } \
    isBangsScreen; \
})

navBar和tabBar的判断

//iPhoneX系列
#define Height_StatusBar ((IS_IPHONE_X==YES || IS_IPHONE_Xr ==YES || IS_IPHONE_Xs== YES || IS_IPHONE_Xs_Max== YES) ? 44.0 : 20.0)
#define Height_NavBar ((IS_IPHONE_X==YES || IS_IPHONE_Xr ==YES || IS_IPHONE_Xs== YES || IS_IPHONE_Xs_Max== YES) ? 88.0 : 64.0)
#define Height_TabBar ((IS_IPHONE_X==YES || IS_IPHONE_Xr ==YES || IS_IPHONE_Xs== YES || IS_IPHONE_Xs_Max== YES) ? 83.0 : 49.0)

相关文章

  • iOS 刘海屏界面适配

    iPhoneX - iPhone12 界面适配 适配判断刘海屏幕 navBar和tabBar的判断

  • 刘海屏适配方案

    首先要清楚的是哪些界面需要适配刘海屏: 「有状态栏的界面」:刘海区域会显示状态栏,无需适配 「全屏界面」:刘海区域...

  • 安卓适配

    ------刘海屏------屏幕适配 | Android 刘海屏适配总结Android刘海屏适配方案Androi...

  • iPhone X 适配 ( iOS 11适配 ) 打理刘海

    iPhone X 适配 ( iOS 11适配 ) 打理刘海 iPhone X 适配 ( iOS 11适配 ) 打理刘海

  • iOS适配刘海屏

    //判断是否为刘海屏 #define INTERFACE_IS_IPHONEX (@available(iOS 1...

  • 刘海屏的适配

    一、适配策略 非全屏状态下不需要适配刘海屏,刘海只占据 toolbar 的位置。 全屏时需要适配刘海屏 二、使用系...

  • ReactNative SafeAreaView修改IOS上下安

    Reactnative 使用SafeAreaView适配IOS iphonex 刘海屏 状态栏和底部背景色 最新新...

  • 关于iOS横竖屏适配

    关于iOS横竖屏适配 关于iOS横竖屏适配

  • 魅族Flyme7系统刘海屏app适配文档

    一, 需求 竖屏有状态栏时由状态栏调整其布局来适配刘海区 横屏或竖屏无状态栏时默认情况下由系统平移界面来避开刘海区...

  • iOS WKWebView 实现内置浏览器

    最近使用WKWebView实现了内置网页浏览器功能,带进度条。适配了iOS刘海屏和横竖屏 先看效果: 代码实现起来...

网友评论

      本文标题:iOS 刘海屏界面适配

      本文链接:https://www.haomeiwen.com/subject/rowqqltx.html