可以通过以下方式获取导航栏的高度,并将其封装成宏定义,以适配多个iPhone型号:\n\nobjective-c\n// 导航栏高度宏定义\n#define NAVIGATION_BAR_HEIGHT \n^CGFloat() {\n CGFloat height = 0.0;\n if (@available(iOS 11.0, *)) {\n UIWindow *window = UIApplication.sharedApplication.windows.firstObject;\n height = window.safeAreaInsets.top > 0 ? window.safeAreaInsets.top : 44.0;\n } else {\n height = 64.0;\n }\n return height;\n}()\n\n// 使用示例\nCGFloat navigationBarHeight = NAVIGATION_BAR_HEIGHT;\n\n\n这个宏定义的实现逻辑是,首先判断当前设备的iOS版本是否大于等于11.0,如果是,则使用safeAreaInsets属性获取导航栏的安全区域高度,否则默认为64.0。\n\n这样的实现方式可以适配iPhone X及以上型号的设备,如果是iPhone X及以上型号,导航栏的高度为安全区域高度(如iPhone X为44.0),否则为64.0。

iOS Objective-C 获取导航栏高度 适配iPhone X及以上型号

原文地址: https://www.cveoy.top/t/topic/qevB 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录