在 iOS11 中更改 UISearchBar 背景图片
Change UISearchBar background image in iOS11
我想更改我的 UISearchBar 背景图片。
在我的 UITableView 中将它添加为 header 视图时,它工作得很好。但是,当我想更改它以将 SearchBar 设置为 navigationItem 的 searchController 时,它不会更改背景图像。
我正在使用:
self.searchBar.searchBar.setBackgroundImage(UIImage(named: "#IMAGENAME")?.resizableImage(withCapInsets: UIEdgeInsets.zero, resizingMode: .stretch), for: .any, barMetrics: UIBarMetrics.default)
有人知道如何解决这个问题吗?
使用下面的代码我用过类似的代码:
// Objective-c代码
[self.searchDisplayController.searchBar setBackgroundImage:[self imageWithColor:[UIColor yourColor]]
forBarPosition:0
barMetrics:UIBarMetricsDefault];
// Swift代码
self.searchDisplayController.searchBar.setBackgroundImage(self.image(colo
r: UIColor.yourColor), for: UIBarPosition(rawValue: 0)!, barMetrics:.default)
请告诉我结果
您可能正在寻找这个:
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 元素,这里有更详细的答案。
我想更改我的 UISearchBar 背景图片。 在我的 UITableView 中将它添加为 header 视图时,它工作得很好。但是,当我想更改它以将 SearchBar 设置为 navigationItem 的 searchController 时,它不会更改背景图像。
我正在使用:
self.searchBar.searchBar.setBackgroundImage(UIImage(named: "#IMAGENAME")?.resizableImage(withCapInsets: UIEdgeInsets.zero, resizingMode: .stretch), for: .any, barMetrics: UIBarMetrics.default)
有人知道如何解决这个问题吗?
使用下面的代码我用过类似的代码:
// Objective-c代码
[self.searchDisplayController.searchBar setBackgroundImage:[self imageWithColor:[UIColor yourColor]]
forBarPosition:0
barMetrics:UIBarMetricsDefault];
// Swift代码
self.searchDisplayController.searchBar.setBackgroundImage(self.image(colo
r: UIColor.yourColor), for: UIBarPosition(rawValue: 0)!, barMetrics:.default)
请告诉我结果
您可能正在寻找这个:
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 元素,这里有更详细的答案。