Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c UISearchController背景与iOS 11中的UINavigationBar背景不匹配_Objective C_Ios11 - Fatal编程技术网

Objective c UISearchController背景与iOS 11中的UINavigationBar背景不匹配

Objective c UISearchController背景与iOS 11中的UINavigationBar背景不匹配,objective-c,ios11,Objective C,Ios11,我正在更新一个支持iPhone X的旧应用程序,当更新可搜索的UITableViewController时,将其放置在导航栏中时,UISearchController的背景不会改变 我使用以下代码将其放置在导航栏中: self.navigationItem.searchController = self.searchController; self.navigationItem.hidesSearchBarWhenScrolling = NO; 检查接口时会显示以下层次结构: _包含在_U

我正在更新一个支持iPhone X的旧应用程序,当更新可搜索的UITableViewController时,将其放置在导航栏中时,UISearchController的背景不会改变

我使用以下代码将其放置在导航栏中:

self.navigationItem.searchController = self.searchController;
self.navigationItem.hidesSearchBarWhenScrolling = NO;

检查接口时会显示以下层次结构:

_包含在_UINavigationControllerManagedSearchPalette中的UIBarBackground保持白色


在创建UINavigationController时,我是否遗漏了一些内容?

尝试应用与导航栏色调相同的背景色

searchBar.tintColor = UIColor.white
searchBar.backgroundColor = UIColor.red
searchBar.clearBackgroundColor()
通过以下方式删除搜索栏的颜色:

extension UISearchBar {

    func clearBackgroundColor() {
        guard let UISearchBarBackground: AnyClass = NSClassFromString("UISearchBarBackground") else { return }

        for view in self.subviews {
            for subview in view.subviews {
                if subview.isKind(of: UISearchBarBackground) {
                    subview.alpha = 0
                }
            }
        }
    }
}
通过上面的代码,我能够实现这个输出


希望这有帮助。

您尝试过将clearColor设置到搜索栏吗?@CodeChanger没有任何区别。背景设置在_UIBarBackground上,因此更改UISearchBar上的背景将不起作用。不幸的是,当搜索栏聚焦时,导航栏的一部分将保持白色:。搜索栏的框架没有延伸到视图的顶部。@DanielAndersson我已经更新了我的答案,请检查。尝试了这个,但得到了与我的屏幕截图相同的结果。背景设置在搜索栏上,但当搜索栏聚焦时,导航栏滑出视图,显示容器视图的背景。我可以通过在UISearchBar下面放置一个自定义UIView来解决这个问题,它的框架一直延伸到顶部。有点黑,但它能工作。@DanielAndersson对我来说,搜索栏的背景在聚焦时不会延伸到顶部。因此,我在搜索结果视图中添加了一个自定义栏背景视图,该视图从
视图.topanch
扩展到
视图.saferealayoutGuide.topanch
,效果很好。