我希望当验证之一迅速失败时,错误图标图像将自动显示在UITextField中。
对于该UITextField,我创建了以下自定义UITextField
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
}
}
并在ViewController中使用了该UITextField,
@IBOutlet var txtEmail: OvalTextField!
如果该txtEmail为空或无效的电子邮件地址,我想显示错误图标消息。
请建议我该怎么做。提前致谢。
您可以使用UITextFiledDelegate方法func textField(textField:UITextField,shouldChangeCharactersInRange范围:NSRange,replaceString string:String)->布尔值在用户输入时使电子邮件有效。
实现委托方法
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
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句