我尝试使用此link更新我的搜索栏,但我的角色布局问题很奇怪。我目前的情况是这样的:
我想删除深灰色的角落。 我正在使用的代码是:
if #available(iOS 11.0, *) {
let searchBar = searchController.searchBar
if let textfield = searchBar.value(forKey: "searchField") as? UITextField {
if let backgroundview = textfield.subviews.first {
// Rounded corner
backgroundview.layer.cornerRadius = 2;
backgroundview.clipsToBounds = true;
// Background color
backgroundview.backgroundColor = UIColor(red: 255.0/255.0, green: 255.0/255.0, blue: 255.0/255.0, alpha: 0.12)
//glass icon colour
if let glassIconView = textfield.leftView as? UIImageView{
glassIconView.image = glassIconView.image?.withRenderingMode(.alwaysTemplate)
glassIconView.tintColor = UIColor.white
}
// Clear Button Customization
if let clearButton = textfield.value(forKey: "clearButton") as? UIButton {
clearButton.setImage(clearButton.imageView?.image?.withRenderingMode(.alwaysTemplate), for: .normal)
clearButton.tintColor = UIColor.white
}
}
}
navigationItem.searchController = searchController
navigationItem.hidesSearchBarWhenScrolling = false
} else {
tableView.tableHeaderView = searchController.searchBar
}

请指出我的方法中的错误。这是最基本项目的link。
答案 0 :(得分:0)
修改强>
问题在于cornerRadius为2。 搜索栏应用cornerRadius为10,因此您可以看到栏的基础背景。
将backgroundView cornerRadius设置为10并且你很好
backgroundview.layer.cornerRadius = 10
答案 1 :(得分:0)
问题是backgroundview.backgroundColor。尝试将alpha设置为1.0,如果设置alpha<则不正确1.0
backgroundview.backgroundColor = UIColor(red: 255.0/255.0, green: 255.0/255.0, blue: 255.0/255.0, alpha: 0.12)
你可以使用浅灰色,它似乎你想要浅灰色。
backgroundview.backgroundColor = UIColor.lightGray