在iOS11中更改UISearchBar背景图像

时间:2018-01-11 09:07:19

标签: ios swift uitableview uisearchbar uisearchcontroller

我想更改我的UISearchBar背景图片。 在我的UITableView中添加它作为标题视图时,它可以很好地工作。但是,当我想要将SearchBar更改为设置为navigationItem的searchController时,它将不会更改背景图像。

我正在使用:

self.searchBar.searchBar.setBackgroundImage(UIImage(named: "#IMAGENAME")?.resizableImage(withCapInsets: UIEdgeInsets.zero, resizingMode: .stretch), for: .any, barMetrics: UIBarMetrics.default)

有人知道如何解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

您可能正在寻找:

if #available(iOS 11.0, *) {
    let sc = UISearchController(searchResultsController: nil)
    if let navigationbar = self.navigationController?.navigationBar {
        navigationbar.barTintColor = UIColor(patternImage: UIImage(named: "pattern")!)
    }
    navigationItem.searchController = sc
    navigationItem.hidesSearchBarWhenScrolling = false
}

这是图片:

enter image description here

结果如下:

enter image description here

如果您想更改搜索栏的任何其他UI元素,请在此处获得更详细的答案。

答案 1 :(得分:0)

使用以下代码我使用了类似的One:

// Objective-c Code

[self.searchDisplayController.searchBar setBackgroundImage:[self imageWithColor:[UIColor yourColor]] 
                                         forBarPosition:0 
                                             barMetrics:UIBarMetricsDefault];

// Swift Code

self.searchDisplayController.searchBar.setBackgroundImage(self.image(colo
r: UIColor.yourColor), for: UIBarPosition(rawValue: 0)!, barMetrics:.default)

请告诉我结果