导航栏下方的空白区域,显示为SearchSearchBarInNavigationBar = YES

时间:2013-12-08 14:17:54

标签: ios7 uinavigationbar uisearchbar

我使用属性displaysSearchBarInNavigationBar = YES在导航栏中的搜索栏出现问题。 我在导航栏和搜索内容之间有一个空白区域,它等于导航项目+状态栏的高度。 就好像在构建视图时,框架不知道我的搜索栏是导航栏......这个空白空间出现在小费之前,以及显示结果表时。

除了这个主题,我没有找到与此问题相关的任何内容: Empty UISearchbar space when combining search bar with Nav bar in iOS7?

我尝试使用搜索栏高度等于0,但它对我不起作用。

请问这个空地吗?

5 个答案:

答案 0 :(得分:5)

对我来说,关键是设置选项以在StoryBoard编辑器中启用“Under Opaque Bars”。

Set "Under Opaque Bars"

答案 1 :(得分:2)

我迄今为止找到的唯一解决方案是使用

self.tableView.contentInset = UIEdgeInsetsMake(-44,0,0,0);

viewDidLoad中的

。这将设置44(搜索栏的已知高度)的负偏移量以清除该额外空间。

有点黑客但它有效。

答案 2 :(得分:1)

我遇到了同样的问题。当您在UISearchDisplayController中初始化viewDidLoad时,会发生这种情况。将此部分代码替换为loadView。这应该解决这个问题!

答案 3 :(得分:0)

我有同样的问题,在没有其他人提供的解决方案实际修复它之后,我能够找到这个iOS 7错误的解决方法:https://stackoverflow.com/a/21493296/580560

答案 4 :(得分:0)

我使用@Jeremy Hicks和@ dsgrant07的解决方案修复了空白区域。谢谢你们。

所以把它放在wiewDidLoad中:

- (void)viedDidLoad{
   [super viedDidLoad];
   ...
   self.tableView.contentInset = UIEdgeInsetsMake(-44, 0, 0, 0);
}

并配置故事板:

enter image description here