Макет NavigationBar имеет исключение, когда пользователь имеет в строке состояния вызова

99
11

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

спросил(а) 2021-01-25T18:21:30+03:00 4 месяца, 3 недели назад
1
Решение
63

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

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

Что еще, почему бы не использовать основную структуру Masonry?

ответил(а) 2021-01-25T18:21:30+03:00 4 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема