首页 > 解决方案 > 当用户在通话状态栏中时,导航栏布局出现异常

问题描述

在我切换通话状态栏后,导航栏会下降。而后面的内容高度为 20 。

我不知道为什么。

图为现场。

1

看起来导航栏掉了。蓝条落下。

从视图层级调试器看,不知道为什么蓝条和导航条有距离。

2

这是相关的代码。

- (void)viewWillLayoutSubviews{
      self.blueBar.translatesAutoresizingMaskIntoConstraints = NO;
      [super viewWillLayoutSubviews];
      [self.blueBar.topAnchor constraintEqualToAnchor: self.view.topAnchor].active = YES;
      [self.blueBar.leadingAnchor constraintEqualToAnchor: self.view.leadingAnchor].active = YES;
      [self.blueBar.trailingAnchor constraintEqualToAnchor: self.view.trailingAnchor].active = YES;
      [self.blueBar.heightAnchor constraintEqualToConstant: 75].active = YES;
      ......
}


-(UIView *)blueBar{
    if(!_blueBar){
        _blueBar = [[UIView alloc] init];
        _blueBar.backgroundColor = [UIColor blueColor];
    }
    return _blueBar;
}

标签: iosobjective-cuiview

解决方案


通话时状态栏高度从 20 变为 40。我发现你使用 tableView,所以试试这个:

if (@available(iOS 11.0, *)) {
    self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
} else {
    self.automaticallyAdjustsScrollViewInsets = NO;
}

更何况,为什么不用主流框架Masonry呢?


推荐阅读