Если я создаю новый проект с одним представлением и добавляю следующий код в 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, всегда правильно учитывают изогнутые края.