我想更改我的UISearchBar背景图片。 在我的UITableView中添加它作为标题视图时,它可以很好地工作。但是,当我想要将SearchBar更改为设置为navigationItem的searchController时,它将不会更改背景图像。
我正在使用:self.searchBar.searchBar.setBackgroundImage(UIImage(named: "#IMAGENAME")?.resizableImage(withCapInsets: UIEdgeInsets.zero, resizingMode: .stretch), for: .any, barMetrics: UIBarMetrics.default)
有人知道如何解决这个问题吗?
答案 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
}
这是图片:
结果如下:
如果您想更改搜索栏的任何其他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)
请告诉我结果