隐藏uitoolbar在顶部留下空隙

时间:2012-04-29 21:17:26

标签: iphone objective-c ios cocoa-touch

我在导航堆栈中有三个viewcontrollers。第一个视图控制器不使用uitoolbar,第二个视图控制器不使用uitoolbar,第三个视图控制器不使用uitoolbar。

问题是,当我从第二个UIViewController转到第三个UITableViewController时,如果我隐藏工具栏,屏幕顶部会有一个白色间隙。

这是一张图片:

gap at top

我目前有[self.navigationController setToolbarHidden:YES animated:YES]; 在第二个视图控制器的viewWillDisappear中,但我也把它放在第三个视图控制器的viewWillAppear方法中。两者都会导致出现差距。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

首先,我建议使用setToolbarHidden:YES animated:NO让新的UIViewController不带工具栏。我认为你的方法最初会显示它,然后就会消失,对吗?如果你使用animated:NO(或者使用没有animated:的方法签名),当第三个UIViewController被推到屏幕上时,新的UIViewController应该“推”掉第二个UIViewController的UIToolbar。

其次,你可能需要在Interface Builder中查看你的UIViewController视图的震动和支柱。这几乎可以肯定是造成这种差距的原因。您可能希望拥有固定的上下边距和灵活的高度。

答案 1 :(得分:0)

我会回答我自己的问题,但我不会接受它,因为它很黑。

我能够通过在viewDidLoad的开头添加这行代码来修复它:

[self.tableView setFrame: CGRectMake(0, 0, 320, 493)];

基本上,我将tableview框架的高度设置为比全屏尺寸(320 x 480)大13个像素。