使用UISearchController在UISearchBar上面的差距

时间:2015-08-03 21:40:19

标签: ios uisearchbar uisearchcontroller

我在iOS中遇到了UISearchBar的奇怪行为。我的搜索栏工作正常:

Good UISearchBar

但是当我在我的ApplicationDelegate的UINavigationBar.appearance().translucent = false中设置didFinishLaunchingWithOptions以在我的iOS应用中的导航栏中获取颜色时,搜索栏会在其上方获得一个白色部分,如下所示:

Broken UISearchBar

滚动结果表视图时,底层内容在该间隙中可见:

Broken UISearchBar translucent

我最接近修复它的是设置mySearchResultsViewController.edgesForExtendedLayout = UIRectEdge.None,它停止了半透明的间隙,但仍然没有正确的颜色:

Broken UISearchBar edgesForExtendedLayout None

我能做些什么来阻止它显示变色的间隙并且仍然有全局不透明的导航栏?

1 个答案:

答案 0 :(得分:4)

经过大量谷歌搜索后,我发现搜索结果中隐藏了以下答案:UISearchController doesn't work properly with a non-translucent UINavigationBar

具体来说,当我将它放在呈现视图控制器中时,此片段有效:

func viewDidLoad() {
    extendedLayoutIncludesOpaqueBars = true
}

如此简单,但难以猜测。