我有一个要设置白色背景的UISearchBar
。
由于要设置自定义边框,因此我选择minimal
的searchBarStyle
值为。
我可以通过将backgroundColor
和borderStyle
设置为searchTextField
来获得白色背景(此字段仅在iOS 13中可用,要在其他iOS版本中安全访问它,请检查here),如下所示:
searchBar.searchTextField.borderStyle = .none
searchBar.searchTextField.backgroundColor = .white
但是,在iOS 13 中不起作用,当
searchBarStyle
值为minimal
时,背景色似乎被忽略了,但是对于default
/ prominent
样式正确地起作用。 最佳答案
在尝试弄清楚这一点时,我注意到在使用Reveal在运行时更改searchBarStyle
时正确应用了背景色。
因此,我尝试在配置搜索栏后在代码中切换`searchBarStyle,并且设法使其正常工作!
func configureSearchBar() {
// ... other searchbar customization code ....
searchBar.searchTextField.borderStyle = .none
searchBar.searchTextField.backgroundColor = .white
if #available(iOS 13.0, *) {
searchBarStyle = .prominent
searchBarStyle = .minimal
}
}}
我知道这是一个非常脆弱的解决方法,但就我而言,它可以解决问题。