Swift 如何在不上传新图片的情况下更改 UISearchBar 清除按钮的颜色
Swift How to change UISearchBar clear button color without uploading a new image
我已经找了几个小时的答案,但我仍然不知道如何更改 UISearchBar
清除按钮颜色(小灰色 x 十字)。
所有答案都解释了如何设置新的清除按钮图标,但我只想将其颜色更改为白色。即使我将 mySearchBar.barStyle
更改为黑色,清除按钮仍保持灰色。我可能没有在整个互联网上检查过,但它似乎不可能。
谢谢
您可以使用图标字体,将字符串绘制到图像上,然后用它来设置图标。我为此创建了一个扩展:
extension UISearchBar {
func set_text_image(text: NSString, icon:UISearchBarIcon, attribute:LTDictStrObj? = nil, state:UIControlState = .Normal) {
var textColor: UIColor = UIColor.whiteColor()
var textFont: UIFont = UIFont(name: "FontAwesome", size: 15)!
UIGraphicsBeginImageContext(CGSizeMake(15, 15))
var attr = attribute
if attr == nil {
attr = [
NSFontAttributeName: textFont,
NSForegroundColorAttributeName: textColor,
]
}
text.drawInRect(CGRectMake(0, 0, 15, 15), withAttributes: attr)
var image: UIImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
self.setImage(image, forSearchBarIcon:icon, state:state)
}
}
要使用它,您需要下载 FontAwesome 并将其作为用户字体添加到您的项目中,然后调用:
search_bar.set_text_image("", icon:.Clear)
search_bar.set_text_image("", icon:.Search)
使 UISearchBar 看起来像:https://www.dropbox.com/s/fx7dbtoxd785zo7/Screenshot%202015-05-12%2011.36.02.png?dl=0
要选择一个图标,请转到备忘单并将图标复制粘贴到您的源代码中:http://fortawesome.github.io/Font-Awesome/cheatsheet/
扩展也是 LSwift 的一部分:http://superarts.github.io/LSwift/
我已经找了几个小时的答案,但我仍然不知道如何更改 UISearchBar
清除按钮颜色(小灰色 x 十字)。
所有答案都解释了如何设置新的清除按钮图标,但我只想将其颜色更改为白色。即使我将 mySearchBar.barStyle
更改为黑色,清除按钮仍保持灰色。我可能没有在整个互联网上检查过,但它似乎不可能。
谢谢
您可以使用图标字体,将字符串绘制到图像上,然后用它来设置图标。我为此创建了一个扩展:
extension UISearchBar {
func set_text_image(text: NSString, icon:UISearchBarIcon, attribute:LTDictStrObj? = nil, state:UIControlState = .Normal) {
var textColor: UIColor = UIColor.whiteColor()
var textFont: UIFont = UIFont(name: "FontAwesome", size: 15)!
UIGraphicsBeginImageContext(CGSizeMake(15, 15))
var attr = attribute
if attr == nil {
attr = [
NSFontAttributeName: textFont,
NSForegroundColorAttributeName: textColor,
]
}
text.drawInRect(CGRectMake(0, 0, 15, 15), withAttributes: attr)
var image: UIImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
self.setImage(image, forSearchBarIcon:icon, state:state)
}
}
要使用它,您需要下载 FontAwesome 并将其作为用户字体添加到您的项目中,然后调用:
search_bar.set_text_image("", icon:.Clear)
search_bar.set_text_image("", icon:.Search)
使 UISearchBar 看起来像:https://www.dropbox.com/s/fx7dbtoxd785zo7/Screenshot%202015-05-12%2011.36.02.png?dl=0
要选择一个图标,请转到备忘单并将图标复制粘贴到您的源代码中:http://fortawesome.github.io/Font-Awesome/cheatsheet/
扩展也是 LSwift 的一部分:http://superarts.github.io/LSwift/