我有一个要设置白色背景的UISearchBar

由于要设置自定义边框,因此我选择minimalsearchBarStyle值为。

我可以通过将backgroundColorborderStyle设置为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
    }
}}


我知道这是一个非常脆弱的解决方法,但就我而言,它可以解决问题。

10-01 04:32