Подтвердить что ты не робот

Размер рамки ниже панели навигации?

Изнутри rootController Я вручную добавляю UITableView, но я не знаю, как получить размер кадра...

Controller *rootController = [[Controller alloc] init];
UINavigationController *tempNavController = [[UINavigationController alloc] initWithRootViewController:rootController];
[self setNavController:tempNavController];
[tempNavController release];

[window addSubview:[[self navController] view]];
[window makeKeyAndVisible];

В настоящее время я использую: [[[self navigationController] view] frame], но это не учитывает высоту "navBar" или "statusBar" (давая мне: 480). Есть ли способ получить размер рамки ниже statusBar/navBar или мне нужно вычесть 20 + 44 от числа выше?

NB: Я использую navigationController.navigationBar.frame.size.height, чтобы получить 44

4b9b3361

Ответ 1

Вы можете попробовать вычесть

[UIApplication sharedApplication].statusBarFrame.size.height

и

self.navigationController.navigationBar.frame.size.height

Из

self.window.frame.size.height

Cheers, Рог

Ответ 2

safeAreaLayoutGuide Когда вид отображается на экране, это руководство отражает часть вида, которая не покрыта панелями навигации, панелями вкладок, панелями инструментов и другими видами предков. (В tvOS безопасная область отражает область, не покрытую рамкой экрана.) Если вид в настоящее время не установлен в иерархии видов или еще не виден на экране, края направляющих макета равны краям вида.

Таким образом, вы можете использовать:

self.safeAreaLayoutGuide.layoutFrame