1.去掉导航搜索框的边沿黑线
当需求要求导航上放置搜索框,并且放置的不止搜索框时,你会在拖返时发现搜索框周围有一个方形背景图:
在 UISearchBar 的类扩展中添加 isOnNarBar() 方法,再调用即可解决
extension UISearchBar{
/**
设置搜索框在导航上
*/
func isOnNarBar() {
//去掉导航搜索框拖返时出现的背景图
self.backgroundImage = UIImage()
}
}
navSearchBar.isOnNarBar()
2.设置搜索框背景色
extension UISearchBar{
/**
设置搜索框的输入框背景色
- parameter color: color
*/
func setTextFieldBackgoundColor(color:UIColor) {
let textField = self.valueForKey("_searchField") as? UITextField
textField?.backgroundColor = color
}
}
3.设置 placeholder ,同时可设定 placeholder 颜色和左侧图片
extension UISearchBar{
/**
设置搜索框 placeholder ,可配置 placeholder 颜色 和左侧图片
- parameter placeHolderStr: placeholder
- parameter color: color
- parameter leftImage: 左侧视图图片
*/
func setPlaceHolder(placeHolderStr:String,color:UIColor?,leftImage:UIImage?) {
self.placeholder = placeHolderStr
let textField = self.valueForKey("_searchField") as? UITextField
if let color = color {
//先设置 placeholder 才能设置 placeholder 的颜色
textField?.setValue(color, forKeyPath: "_placeholderLabel.textColor")
}
if let leftImage = leftImage {
textField?.leftView = UIImageView.init(image: leftImage)
}
}
}
navSearchBar.setPlaceHolder("设置了 placeholder 之后,才能修改它的颜色", color: UIColor.whiteColor(), leftImage: UIImage.init(named: "white_seach"))
期待你的评论建议O(∩_∩)O~