Почему safeAreaInsets и safeAreaLayoutGuide кажутся неправильными на новом iPad без строки состояния? - PullRequest
0 голосов
/ 09 ноября 2018

Если я создаю новый проект с одним представлением и добавляю следующий код в ViewController.m

-(void)viewWillLayoutSubviews {
    [super viewWillLayoutSubviews];
    UIWindow *window = UIApplication.sharedApplication.windows[0];
    NSLog(@"%@, %@", NSStringFromUIEdgeInsets(window.safeAreaInsets), NSStringFromCGRect([[window safeAreaLayoutGuide] layoutFrame]));
}

Я получаю следующие результаты на новом симуляторе iPad Pro (12,9 дюйма) (3-го поколения).

со строкой состояния: {24, 0, 20, 0}, {{0, 24}, {1024, 1322}}

Без строки состояния: {0, 0, 20, 0}, {{0, 0}, {1024, 1346}}

Почему верхняя вставка 0 или значение кадра y равно 0, если строка состояния отсутствует? Разве эти значения не должны равняться 20, как нижняя вставка?

Я удаляю строку состояния, устанавливая UIStatusBarHidden=YES и UIViewControllerBasedStatusBarAppearance=NO в info.plist. Результаты, которые я получаю на iPhone, всегда правильно учитывают изогнутые края.

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