iOS 关于 UISearchBar 的一些设置

1.去掉导航搜索框的边沿黑线
当需求要求导航上放置搜索框,并且放置的不止搜索框时,你会在拖返时发现搜索框周围有一个方形背景图:


copylabel7.gif

在 UISearchBar 的类扩展中添加 isOnNarBar() 方法,再调用即可解决

extension UISearchBar{
  /**
   设置搜索框在导航上
   */
  func isOnNarBar() {
    //去掉导航搜索框拖返时出现的背景图
    self.backgroundImage = UIImage()
  }
}
navSearchBar.isOnNarBar()

2.设置搜索框背景色


设置搜索框背景色.png
extension UISearchBar{
  /**
   设置搜索框的输入框背景色
   - parameter color:  color
   */
  func setTextFieldBackgoundColor(color:UIColor) {
    let textField = self.valueForKey("_searchField") as? UITextField
    textField?.backgroundColor = color
  }
}

3.设置 placeholder ,同时可设定 placeholder 颜色和左侧图片


设置 placeholder.png
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~

你可能感兴趣的:(iOS 关于 UISearchBar 的一些设置)