// // UIDevice+MOAddition.m // MiMoLive // // Created by SuperC on 2024/3/19. // #import "UIDevice+MOAddition.h" @implementation UIDevice (MOAddition) /// 顶部安全区高度 + (CGFloat)mo_safeDistanceTop { if (@available(iOS 13.0, *)) { NSSet *set = [UIApplication sharedApplication].connectedScenes; UIWindowScene *windowScene = [set anyObject]; UIWindow *window = windowScene.windows.firstObject; return window.safeAreaInsets.top; } else if (@available(iOS 11.0, *)) { UIWindow *window = [UIApplication sharedApplication].windows.firstObject; return window.safeAreaInsets.top; } return 0; } /// 底部安全区高度 + (CGFloat)mo_safeDistanceBottom { if (@available(iOS 13.0, *)) { NSSet *set = [UIApplication sharedApplication].connectedScenes; UIWindowScene *windowScene = [set anyObject]; UIWindow *window = windowScene.windows.firstObject; return window.safeAreaInsets.bottom; } else if (@available(iOS 11.0, *)) { UIWindow *window = [UIApplication sharedApplication].windows.firstObject; return window.safeAreaInsets.bottom; } return 0; } /// 顶部状态栏高度(包括安全区) + (CGFloat)mo_statusBarHeight { if (@available(iOS 13.0, *)) { NSSet *set = [UIApplication sharedApplication].connectedScenes; UIWindowScene *windowScene = [set anyObject]; UIStatusBarManager *statusBarManager = windowScene.statusBarManager; return statusBarManager.statusBarFrame.size.height; } else { return [UIApplication sharedApplication].statusBarFrame.size.height; } } /// 导航栏高度 + (CGFloat)mo_navigationBarHeight { return 44.0f; } /// 状态栏+导航栏的高度 + (CGFloat)mo_navigationFullHeight { return [UIDevice mo_statusBarHeight] + [UIDevice mo_navigationBarHeight]; } /// 底部导航栏高度 + (CGFloat)mo_tabBarHeight { return 49.0f; } /// 底部导航栏高度(包括安全区) + (CGFloat)mo_tabBarFullHeight { return [UIDevice mo_tabBarHeight] + [UIDevice mo_safeDistanceBottom]; } @end