我想自定义UISearchBar
内的取消按钮,用户输入文字时显示,清除文字,看图像,我想更改红色方块内按钮的色调颜色不是带有“取消”文字的按钮
我尝试过:
[[UIButton appearanceWhenContainedIn:[UISearchBar class], nil] setTintColor:[UIColor redColor]];
但它改变了按钮的颜色,文字“取消”而不是图标以清除文本字段内的文字
这不是一个重复的问题,因为我想改变默认清晰图像的色调,而不是使用自定义图像,如下所示:
How to change the tint color of the clear button on a UITextField
但是对于UISearchBar
答案 0 :(得分:2)
label4.Text = $"({x1:0.00}, 0), ({x2:0.00},0)";
答案 1 :(得分:1)
Swift
4.2,4.1 +
对于currentImage
中的nil
,看来clearButton
是Swift 4.1+
。可能在旧版本中可用。
所以我创建了这个类,这里的补充是为clear
button
提供您自己的图像和颜色。
class SearchBar: UISearchBar {
var clearButtonImage: UIImage?
var clearButtonColor: UIColor = .white
override func layoutSubviews() {
super.layoutSubviews()
if let textField = self.value(forKey: "searchField") as? UITextField {
if let clearButton = textField.value(forKey: "clearButton") as? UIButton {
update(button: clearButton, image: self.clearButtonImage, color: clearButtonColor)
}
}
}
private func update(button: UIButton, image: UIImage?, color: UIColor) {
let image = (image ?? button.currentImage)?.withRenderingMode(.alwaysTemplate)
button.setImage(image, for: .normal)
button.setImage(image, for: .highlighted)
button.tintColor = color
}
}
因此,您现在可以如下设置clearButton
图像,以使其工作
let searchBar = SearchBar()
searchBar.clearButtonImage = UIImage(named: "clearIcon")
searchBar.clearButtonColor = .green
故事板或XIB
对于下面显示的搜索栏,您必须将SearchBar
类设置为custom class
,
并按如下所示outlet
设置图像和颜色等
@IBOutlet private weak var searchBar: SearchBar!