框架尺寸低于导航栏?

时间:2010-12-07 16:23:52

标签: iphone objective-c cocoa-touch

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?

注意:我正在使用navigationController.navigationBar.frame.size.height获得44

2 个答案:

答案 0 :(得分:48)

您可以尝试减去

[UIApplication sharedApplication].statusBarFrame.size.height

self.navigationController.navigationBar.frame.size.height

来自你的

self.window.frame.size.height

干杯, ROG

答案 1 :(得分:0)

safeAreaLayoutGuide 当视图在屏幕上可见时,本指南将反映该视图未被导航栏,标签栏,工具栏和其他祖先视图覆盖的部分。 (在tvOS中,安全区域反映的是未被屏幕边框覆盖的区域。)如果视图当前未安装在视图层次结构中或在屏幕上尚不可见,则布局参考线的边缘将等于视图的边缘。 / p>

因此您可以使用:

self.safeAreaLayoutGuide.layoutFrame