可以通过以下方式获取导航栏的高度,并将其封装成宏定义,以适配多个iPhone型号:

// 导航栏高度宏定义
#define NAVIGATION_BAR_HEIGHT \
^CGFloat() {\
    CGFloat height = 0.0;\
    if (@available(iOS 11.0, *)) {\
        UIWindow *window = UIApplication.sharedApplication.windows.firstObject;\
        height = window.safeAreaInsets.top > 0 ? window.safeAreaInsets.top : 44.0;\
    } else {\
        height = 64.0;\
    }\
    return height;\
}()

// 使用示例
CGFloat navigationBarHeight = NAVIGATION_BAR_HEIGHT;

这个宏定义的实现逻辑是,首先判断当前设备的iOS版本是否大于等于11.0,如果是,则使用safeAreaInsets属性获取导航栏的安全区域高度,否则默认为64.0。

这样的实现方式可以适配iPhone X及以上型号的设备,如果是iPhone X及以上型号,导航栏的高度为安全区域高度(如iPhone X为44.0),否则为64.0

iOS object-c 获取导航栏的高度 封装成宏定义 适配iphone14等等 多个手机型号

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

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