UITextfield 设置左侧图片需要添加leftView,但默认会紧贴左边,且设置frame无效
//创建textField
let searchTextField = UITextField()
searchTextField.layer.cornerRadius = 5.0
searchTextField.backgroundColor = UIColor.white
//左侧图片
let leftView = UIImageView(image: #imageLiteral(resourceName: "icon_small_search"))
leftView.contentMode = .center
leftView.frame = CGRect(x: 30, y: 0, width: 15, height: 15)
searchTextField.leftView = leftView
searchTextField.leftViewMode = .always
searchTextField.placeholder = "搜一搜"
fakeNavigationView.addSubview(searchTextField)
searchTextField.snp.makeConstraints { (make) in
make.left.equalTo(20)
make.right.equalTo(-80)
make.centerY.equalTo(fakeNavigationView).offset(10)
make.height.equalTo(30)
}
效果如下:

设置frame无效
解决方案: 给imageView 添加一个父视图,并设置imageView居中,最后将父视图设置为textfiled的leftView
//左侧图片
let leftView = UIImageView(image: #imageLiteral(resourceName: "icon_small_search"))
leftView.contentMode = .center
//添加背景视图
let bgView = UIView()
bgView.frame = CGRect(x: 0, y: 0, width: 30, height: 30)
bgView.addSubview(leftView)
leftView.snp.makeConstraints { (make) in
make.center.equalTo(bgView)
make.width.height.equalTo(15)
}
searchTextField.leftView = bgView
效果如下:

左侧图边距增加
网友评论