我在iOS中遇到了UISearchBar的奇怪行为。我的搜索栏工作正常:
但是当我在我的ApplicationDelegate的UINavigationBar.appearance().translucent = false
中设置didFinishLaunchingWithOptions
以在我的iOS应用中的导航栏中获取颜色时,搜索栏会在其上方获得一个白色部分,如下所示:
滚动结果表视图时,底层内容在该间隙中可见:
我最接近修复它的是设置mySearchResultsViewController.edgesForExtendedLayout = UIRectEdge.None
,它停止了半透明的间隙,但仍然没有正确的颜色:
我能做些什么来阻止它显示变色的间隙并且仍然有全局不透明的导航栏?
答案 0 :(得分:4)
经过大量谷歌搜索后,我发现搜索结果中隐藏了以下答案:UISearchController doesn't work properly with a non-translucent UINavigationBar
具体来说,当我将它放在呈现视图控制器中时,此片段有效:
func viewDidLoad() {
extendedLayoutIncludesOpaqueBars = true
}
如此简单,但难以猜测。