ios 获取导航栏和状态栏高度,针对iPhoneX
因为iPhoneX的产生,原本的导航栏再也不是44了,那么会出现什么问题呢?在隐藏导航栏的页面,原本的高度要向上调整一个导航栏+状态栏的高度。那么iPhoneX的导航栏高度不是44了,我们需要手动获取,
有导航栏的,代码如下:
1
2
3
4
5
6
|
//获取状态栏的rect CGRect statusRect = [[UIApplication sharedApplication] statusBarFrame]; //获取导航栏的rect CGRect navRect = self.navigationController.navigationBar.frame; 那么导航栏+状态栏的高度 statusRect.size.height+navRect.size.height |
是不是很简单!!!!
对于项目有的很多处都需要这个代码,可以给它写成宏定义。如下
方法一:
1
2
|
//获取导航栏+状态栏的高度 #define getRectNavAndStatusHight self.navigationController.navigationBar.frame.size.height+[[UIApplication sharedApplication] statusBarFrame].size.height |
方法二:(用了宏定义的 参数返回)
1
2
3
4
5
6
|
//获取导航栏+状态栏的高度 #define getRectNavAndStatusHight \ ({\ CGRect rectStatus = [[UIApplication sharedApplication] statusBarFrame];\ CGRect rectNav = self.navigationController.navigationBar.frame;\ ( rectStatus.size.height+ rectNav.size.height);\ })\ |
下面说说没有导航栏(对于模态视图推出):
#define isPhoneX ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) : NO)
首先判断机型是不是iPhoneX,然后
如果是iPhoneX返回88 如果不是64
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
2015-08-22 Android View绘制过程
2015-08-22 View实现涂鸦、撤销以及重做功能
2015-08-22 SurfaceView类透明背景设置
2015-08-22 Android SurfaceView实现静态于动态画图效果
2015-08-22 Android自定义控件实战——水流波动效果的实现WaveView
2015-08-22 Android中贝塞尔曲线的绘制方法
2013-08-22 通过 ANE(Adobe Native Extension) 启动Andriod服务 推送消息(五)