Iphone 如何确保tableViewController视图占据整个屏幕?

Iphone 如何确保tableViewController视图占据整个屏幕?,iphone,objective-c,cocoa-touch,Iphone,Objective C,Cocoa Touch,在viewDidLoad方法中,我添加了以下任意组合,但无法使其工作: CGRect appFrame = [[UIScreen mainScreen] applicationFrame]; [[self tableView] setBounds:appFrame]; // self.view.frame = appFrame; // self.view.bounds = appFrame; // [[self tableVew] setFrame:appFrame]; self.vi

在viewDidLoad方法中,我添加了以下任意组合,但无法使其工作:

 CGRect appFrame = [[UIScreen mainScreen] applicationFrame];
 [[self tableView] setBounds:appFrame]; 
 // self.view.frame = appFrame;
// self.view.bounds = appFrame;
// [[self tableVew] setFrame:appFrame];
 self.view.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth;

顶部总是有一个20px的间隙,我的上一个屏幕显示通过。

20px是状态栏的空间(应用程序框架上的文档覆盖了这个)。您是否已关闭状态栏(使用
-setStatusBarHidden:animated:
)?

20px是状态栏的空间(在-applicationFrame上的文档涵盖了这一点)。您是否已关闭状态栏(使用
-setStatusBarHidden:animated:
)?

而不是设置应用程序框架的边界: CGRect appFrame=[[UIScreen mainScreen]applicationFrame]; 我将边界设置为应用程序边界: CGRect appFrame=[[UIScreen mainScreen]边界]

然后我将其设置为tableview的边界
[[self tableView]setBounds:appFrame]

不设置应用程序框架的边界: CGRect appFrame=[[UIScreen mainScreen]applicationFrame]; 我将边界设置为应用程序边界: CGRect appFrame=[[UIScreen mainScreen]边界]

然后我将其设置为tableview的边界
[[self tableView]setBounds:appFrame]

我没有隐藏状态栏。它仍然可见。与我的旧屏幕显示的差距就在状态栏下方。你可能是对的,它与状态栏有关。问题是applicationFrame为状态栏提供了20px的偏移量。然后将该帧应用到另一个视图中的视图(窗口,如果没有其他可能),因此新帧与父帧的偏移量为20px。实际上,您希望将框架设置为父框架(或最终窗口框架)的大小。该窗口已全屏显示。你在这里提到的“上一个屏幕”是什么?谢谢Rob。上一个屏幕是另一个viewController-我的主游戏屏幕。我正在使用的屏幕是结果屏幕。您的建议立即导致了我下面的解决方案。谢谢。我没有隐藏状态栏。它仍然可见。与我的旧屏幕显示的差距就在状态栏下方。你可能是对的,它与状态栏有关。问题是applicationFrame为状态栏提供了20px的偏移量。然后将该帧应用到另一个视图中的视图(窗口,如果没有其他可能),因此新帧与父帧的偏移量为20px。实际上,您希望将框架设置为父框架(或最终窗口框架)的大小。该窗口已全屏显示。你在这里提到的“上一个屏幕”是什么?谢谢Rob。上一个屏幕是另一个viewController-我的主游戏屏幕。我正在使用的屏幕是结果屏幕。您的建议立即导致了我下面的解决方案。谢谢