Компоновка NavigationBar имеет исключение, когда пользователь находится в строке состояния вызова - PullRequest
0 голосов
/ 07 сентября 2018

После того, как я переключаю строку состояния в вызове, панель навигации падает. И содержание позади падает на высоту 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;
}

1 Ответ

0 голосов
/ 08 сентября 2018

Высота строки состояния изменяется с 20 на 40 при вызове. И я обнаружил, что вы используете tableView, поэтому попробуйте это:

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

Более того, почему бы не использовать основной фреймворк Masonry?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...