由于UISearchBar中的布局更改,旧版iOS的此问题的旧版本不再有效。
我已尝试以下操作来完全删除UISearchBar的背景颜色,但它不起作用。 (我试图查找它的层次结构视图,但xCode一直在为此选项崩溃。)
private func clearBackgroundColor() {
for view in self.subviews {
view.backgroundColor = UIColor.clear
for subview in view.subviews {
subview.backgroundColor = UIColor.clear
}
}
}
有任何想法或建议吗?
谢谢!
答案 0 :(得分:10)
private func clearBackgroundColor() {
guard let UISearchBarBackground: AnyClass = NSClassFromString("UISearchBarBackground") else { return }
for view in self.subviews {
for subview in view.subviews where subview.isKind(of: UISearchBarBackground) {
subview.alpha = 0
}
}
}
这就是我最终所做的工作。谢谢大家的回答。
答案 1 :(得分:4)
我想你提到了搜索栏的BarTintColor
试试这个:
searchBar.barTintColor = .white
答案 2 :(得分:2)
试试这个。
class CustomSearchBar: UISearchBar {
override func layoutSubviews() {
super.layoutSubviews()
clearBackgroundColor() // function in the question
}
}
private func clearBackgroundColor() {
for view in self.subviews {
view.backgroundColor = UIColor.clear
for subview in view.subviews {
subview.backgroundColor = UIColor.clear
}
}
}
答案 3 :(得分:2)
尝试设置backgroundimage:
[searchBar setBackgroundImage:[UIImage new]];
答案 4 :(得分:1)
let searchBar = UISearchBar()
searchBar.backgroundImage = UIImage()
答案 5 :(得分:0)
答案 6 :(得分:0)
您可以在Interface Builder中将搜索样式更改为“最小”