I want error icon image will be shown automatically within UITextField when one of validation is failed in swift.
Here is normal stage
Here is error stage when validation is failed
For that UITextField, I've created custom UITextField as follow
class OvalTextField: UITextField {
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)!
createBorder()
}
required override init(frame: CGRect) {
super.init(frame: frame)
createBorder()
}
func createBorder(){
let errorImg = UIImageView (frame: CGRectMake(0, 0, 30, 30))
errorImg.image = UIImage(named: "error")
errorImg.contentMode = UIViewContentMode.Left
self.layer.borderWidth = 1.0
self.layer.borderColor = UIColor(red:0.93, green:0.93, blue:0.93, alpha:1.0).CGColor
self.layer.cornerRadius = self.frame.size.height / 2
self.layer.masksToBounds = true
let gapLabel = UIView (frame: CGRectMake(60, 0, 10, 40))
self.leftView = gapLabel
self.leftViewMode = UITextFieldViewMode.Always
/* Display that one when validation is failed */
self.rightView = errorImg;
self.rightViewMode = UITextFieldViewMode.Always
}
}
and used that UITextField in ViewController,
@IBOutlet var txtEmail: OvalTextField!
if that txtEmail is empty or not valid email address, I want to show error icon message.
Please suggest me how to do it. Thanks in advance.
You can use the UITextFiledDelegate method func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool to valid the email when user input.
Implement the delegate method
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
let email = (textField.text! as NSString).stringByReplacingCharactersInRange(range, withString: string)
if /* email is validate */ {
textField.rightView?.hidden = false
} else {
textField.rightView?.hidden = true
}
return true
}
func validated() -> Bool {
var valid: Bool = true
if ((txt_EmailID.text?.isEmpty) != nil){
// change placeholder color to red color for textfield email-id
txt_EmailID.attributedPlaceholder = NSAttributedString(string: "Please enter Your Email ID", attributes: [NSForegroundColorAttributeName: UIColor.redColor()])
valid = false
}
if ((txt_UserName.text?.isEmpty) != nil){
// change placeholder color to red for textfield username
txt_UserName.attributedPlaceholder = NSAttributedString(string:"Please enter User Name",attributes: [NSForegroundColorAttributeName: UIColor.redColor()])
valid = false
}
if ((txt_Password.text?.isEmpty) != nil){
// change placeholder color to red for textfield password
txt_Password.attributedPlaceholder = NSAttributedString(string:"Please enter Password",attributes: [NSForegroundColorAttributeName:UIColor.redColor()])
valid = false
}
if ((txt_MobileNo.text?.isEmpty) != nil){
// change placeholder color to red for textfield mobile no.
txt_MobileNo.attributedPlaceholder = NSAttributedString(string: "Please enter Mobile no.",attributes: [NSForegroundColorAttributeName: UIColor.redColor()])
valid = false
}
return valid
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With