首页 > 解决方案 > UISearchBar 背景颜色不适用于最小的 searchBarStyle

问题描述

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

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

backgroundColor我可以通过设置和borderStyle来获得白色背景searchTextField(该字段仅在 iOS 13 中可用,在其他 iOS 版本中安全访问请查看此处),如下所示:

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

但是,这在 iOS 13 中不起作用,searchBarStyle当value 为时,背景颜色似乎被忽略minimal,但适用于default/prominent样式。

标签: iosxcodeuitextfielduisearchbarios13

解决方案


在试图弄清楚这一点时,我注意到searchBarStyle在运行时使用Reveal更改时正确应用了背景颜色。

所以我尝试在搜索栏配置后切换代码中的`searchBarStyle,我设法让它工作!

func configureSearchBar() {

    // ... other searchbar customization code ....

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

    if #available(iOS 13.0, *) {
        searchBarStyle = .prominent
        searchBarStyle = .minimal
    }
}}

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


推荐阅读