UISearchbar& SearchDisplay Controller未在iOS7中的状态栏下方扩展

时间:2013-10-08 18:59:19

标签: iphone objective-c xcode storyboard ios7

我遇到了UISearchViewController的问题(使用故事板布局)。

我的主视图控制器顶部有一个导航栏,我在其下方放置了UISearchBar。 MKMapView扩展到搜索栏和导航栏下方。

当SearchViewController处于活动状态时,导航栏会向上滑动。我添加了一个autolayout约束来将uisearchbar粘贴到导航栏的底部。但是,搜索栏似乎不会在状态栏下方和地图视图上方延伸。相反,mapview出现在上方20px的间隙中。

Main view controller

search view controller active

非常感谢任何帮助!

3 个答案:

答案 0 :(得分:1)

在导航栏上将半透明设置为false并未解决此问题。但是,设置searchBar的半透明属性对我有用。

我使用这些UISearchDisplayDelegate方法根据searchBar是否有效来更改值。

func searchDisplayControllerWillBeginSearch(controller: UISearchDisplayController) {
    // self.searchBar is an IBOutlet from storyboard
    self.searchBar.translucent = false
}

func searchDisplayControllerWillEndSearch(controller: UISearchDisplayController) {
    self.searchBar.translucent = true
}

答案 1 :(得分:0)

我认为可以用navigationBar.translucent = NO修复它;在iOS 7中默认设置为YES。我自己也遇到了很多麻烦。

答案 2 :(得分:0)

在info.plist文件中尝试此操作以禁用状态栏

Try this in info.plist file to disable the status bar