我是靠谱客的博主 精明酸奶,这篇文章主要介绍iOS 判断设备类型 宏定义导航栏和标签栏高度,现在分享给大家,希望可以做个参考。

由于iPhoneX系列手机的出现,导航栏和标签栏的高度不能写死,需要通过代码判断设备类型。随着iPhone X标配的iOS 11出现了safeArea的概念,可以通过safeArea获取导航栏和标签栏高度,当然低于iOS 11的肯定是正常的机型了。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// 屏幕大小 #define ScreenBounds [UIScreen mainScreen].bounds #define ScreenWidth [UIScreen mainScreen].bounds.size.width #define ScreenHeight [UIScreen mainScreen].bounds.size.height // 屏幕宽度比例 #define ScaleWidth (ScreenWidth / 375.0f) #define ScaleHeight (ScreenHeight / 667.0f) #define ScaleSize ScaleWidth // 状态栏高度 #define StatusBarHeight [[UIApplication sharedApplication] statusBarFrame].size.height // 导航栏高度 #define NavigationBarHeight (StatusBarHeight + 44) // 标签栏高度 #define TabBarHeight ([Tools bottmHeight] + 49) // 标签栏高度 #define BottomHeight [Tools bottmHeight] // 判断是否是iPhone X #define IS_iPhoneX [Tools isIphoneX] // 判断是否是小屏幕 #define IS_iPhoneSE (ScreenWidth < 375)
复制代码
1
2
3
+ (BOOL)isIphoneX; + (CGFloat)bottmHeight;
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
+ (BOOL)isIphoneX { BOOL isIphoneX = NO; if (@available(iOS 11.0, *)) { UIWindow *mainWindow = [[[UIApplication sharedApplication] delegate] window]; if (mainWindow.safeAreaInsets.bottom > 0.0) { isIphoneX = YES; } } return isIphoneX; } + (CGFloat)bottmHeight { if (@available(iOS 11.0, *)) { UIWindow *mainWindow = [[[UIApplication sharedApplication] delegate] window]; return mainWindow.safeAreaInsets.bottom; } return 0; }

最后

以上就是精明酸奶最近收集整理的关于iOS 判断设备类型 宏定义导航栏和标签栏高度的全部内容,更多相关iOS内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部