欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

iOS 11 自定义UINavigationBar适配问题,导航条向上偏移20点问题

程序员文章站 2022-05-30 11:58:26
...

iOS 11 自定义UINavigationBar适配问题,导航条向上偏移20点问题

iOS 11 自定义UINavigationBar适配问题,导航条向上偏移20点问题

UINavigationBar结构改变了,需要将barcontentview frame调整一下

iOS 11 自定义UINavigationBar适配问题,导航条向上偏移20点问题

解决方案 自己写一个类 继承UINavigationBar 重写layoutSubviews方法改变frame即可。

- (void)layoutSubviews {
    [super layoutSubviews];
#ifdef __IPHONE_11_0
    if (@available(iOS 11.0, *)) {
        self.hx_h = kNavigationBarHeight;
        for (UIView *view in self.subviews) {
            if([NSStringFromClass([view class]) containsString:@"Background"]) {
                view.frame = self.bounds;
            }
            else if ([NSStringFromClass([view class]) containsString:@"ContentView"]) {
                CGRect frame = view.frame;
                frame.origin.y = kNavigationBarHeight - 44;
                frame.size.height = self.bounds.size.height - frame.origin.y;
                view.frame = frame;
            }
        }
    }
#endif
}