我一直在搜索这个问题,我希望我的搜索栏显示像BBC新闻应用程序
我尝试所有相关的方法
for view in searchBar.subviews {
if view.isKindOfClass(NSClassFromString("UISearchBarBackground")!) {
view.removeFromSuperview()
break;
}
}
self.searchBar.tintColor = UIColor.clearColor()
self.searchBar.backgroundColor = UIColor.clearColor()
self.searchBar.translucent = true
Run Code Online (Sandbox Code Playgroud)
我错过了什么?请帮帮我,谢谢!
我按照下面的编程方式创建了UISearchBar,按钮看起来是第二个图像.如何清除搜索栏的白色并将背景颜色设置为黑色
var categorySearchBar : UISearchBar = UISearchBar()
categorySearchBar.frame = CGRectMake(0, 20, self.view.frame.size.width, 30)
categorySearchBar.layer.borderColor = UIColor.grayColor().CGColor
categorySearchBar.layer.borderWidth = 1.0
categorySearchBar.placeholder = "SEARCH"
categorySearchBar.barTintColor = UIColor.blackColor()
self.view.addSubview(categorySearchBar)
Run Code Online (Sandbox Code Playgroud)


我正在尝试将搜索栏中文本字段的背景颜色设置为自定义颜色。我看着这里的答案无济于事:
看到搜索栏的文本字段为红色吗?我遵循了代码,甚至可以验证是否找到了UISearchBarTextField对象,并且它的背景色被设置为UIColor.red,但是颜色没有改变。
我把超级视图的所有背景颜色弄乱了,希望对它有帮助,但我无法改变这种颜色。也许有一些新技巧,或者有人可以阐明某些可能以某种方式覆盖颜色的东西。
extension UISearchBar {
var textField: UITextField? {
return subviews.first?.subviews.first(where: { $0.isKind(of: UITextField.self) }) as? UITextField
}
}
searchBar.textField?.backgroundColor = UIColor.red // <-- Not working
let textFieldInsideUISearchBarLabel = searchBar.textField?.value(forKey: "placeholderLabel") as? UILabel
textFieldInsideUISearchBarLabel?.textColor = UIColor.lightGray
Run Code Online (Sandbox Code Playgroud)
请注意,UITextField对象内的文本正像我想要的那样变为lightGray,而不是UITextField背景色。