在iOS中将UISearchBar的背景颜色设置为白色

11
我正在尝试更改UISearchbar的背景颜色。 我可以将背景设置为任何颜色,但不能设置为白色。 不确定为什么无法设置为白色。 我使用以下代码片段设置颜色。 我有一个扩展方法来获取textField。 因此,您可以假设textField存在。
searchBar.backgroundColor = .white
searchBar.textField?.backgroundColor = .white

当我将它设置为白色时,它总是呈现灰色。然而,如果我使用除白色以外的颜色,它会显示该颜色。
searchBar.textField?.backgroundColor = .blue

enter image description here

这里出了什么问题,有任何想法吗。

2个回答

9
我发现唯一可靠的方法是将searchTextField.borderStyle设置为.none,并手动设置图层的cornerRadius以匹配默认边框样式。例如:
self.searchBar.searchTextField.borderStyle = .none
self.searchBar.searchTextField.layer.cornerRadius = 10
self.searchBar.searchTextField.backgroundColor = .white

这个技巧对我起作用了,但这太奇怪了,我不知道为什么白色不起作用,而其他颜色完美的起作用! - Mohammad Rabi
谢谢,这让我疯了,超级奇怪但它有效,iOS 15.4。 - Evgeny Karkan

0

试试这个:

if #available(iOS 13.0, *) {
    searchController.searchBar.textField.backgroundColor = .white
}

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