文本字段左视图图像颜色

Text field leftview image color

如何在用户使用键盘时更改左视图图像的颜色?如果 userNameTextField 不包含 6 个字母,我希望图像为红色。 非常感谢

这是我的左视图图像代码:

  userNameTextField.leftViewMode = UITextFieldViewMode.Always
        userNameTextField.leftView = UIImageView(image: UIImage(named: "Clipboard-20-2"))

只需将目标添加到您的 UITextField 以控制事件 EditingChanged 并检查发送者字符数是否少于 6。您还需要将图像渲染模式设置为始终模板并设置您的 UITextField leftView tintColor 属性 到红色:

import UIKit

class ViewController: UIViewController {
    @IBOutlet weak var userNameTextField: UITextField!
    override func viewDidLoad() {
        super.viewDidLoad()
        if let templateImage = UIImage(named: "Clipboard-20-2")?.imageWithRenderingMode(.AlwaysTemplate) {  // it will only use your image silhouette tinted with blue or red color
            let imageView = UIImageView(image: templateImage)
            imageView.tintColor = UIColor.redColor()
            userNameTextField.leftViewMode = .Always
            userNameTextField.leftView = imageView
        }
        userNameTextField.addTarget(self, action: "textChanged:", forControlEvents: .EditingChanged)
    }
    func textChanged(sender: UITextField) {
        sender.leftView?.tintColor = sender.text?.characters.count < 6 ? UIColor.redColor() : nil
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}