UISearchBar在最小化searchBarStyle下无法更改背景颜色

3

我有一个UISearchBar,我想将其设置为白色背景。

由于我想设置自定义边框,因此我选择将searchBarStyle值设置为minimal

通过设置searchTextFieldbackgroundColorborderStyle(该字段仅在iOS 13中可用,在其他iOS版本中安全访问,请在这里检查),我可以获得白色背景,如下:

searchBar.searchTextField.borderStyle = .none
searchBar.searchTextField.backgroundColor = .white

然而,在iOS 13中这种方法行不通,似乎当searchBarStyle的值为minimal时忽略了背景颜色,但是对于default/prominent样式可以正确工作。

1个回答

3
在试图解决这个问题时,我注意到在运行时使用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
    }
}}


我知道这只是一个非常脆弱的解决方法,但在我这个案例中它解决了问题。

这在 iOS 15 上仍然有效。 - leolobato

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接