[Swift通天遁地]二、表格表单-(8)快速实现表单的输入验证

[Swift通天遁地]二、表格表单-(8)快速实现表单的输入验证,第1张

概述本文将演示如何快速实现表单是输入验证。 首先确保在项目中已经安装了所需的第三方库。 点击【Podfile】,查看安装配置文件。 1 platform :ios, ‘12.0‘2 use_frameworks!3 4 target ‘DemoApp‘ do5 source ‘https://github.com/CocoaPods/Specs.git‘6 pod @H_404_0@ @H_404_0@

本文将演示如何快速实现表单是输入验证。

首先确保在项目中已经安装了所需的第三方库。

点击【Podfile】,查看安装配置文件。

1 platform :ios,12.02 use_frameworks!3 4 target DemoApp do5     source https://github.com/CocoaPods/Specs.git6     pod SwiftValIDator,:git => https://github.com/jpotts18/SwiftValIDator.git,:branch => master7 end

根据配置文件中的相关配置,安装第三方库。

然后点击打开【DemoApp.xcworkspace】项目文件。

在项目导航区,打开故事版文件【Main.storyboard】

打开控件库,插入一个标签控件。点击【属性检查器】,进入属性设置面板。

设置标签默认文字的内容。拖动标签控件,增加标签控件的宽度。

再次插入一个标签到故事板中,设置文字内容右对齐,

该标签将用来显示表单验证时的错误信息。

往故事板中插入一个输入框,设置文本框的占位文字。

继续添加其他的控件,直到完成整个表单的制作。

再给表单添加一个提交按钮,设置按钮控件的标题文字:【submit】

背景色:【Background】

前景色:【Tint】

在项目导航区,打开视图控制器的代码文件【VIEwController.swift】

现在开始编写代码,实现表单的输入验证功能。

  1 import UIKit  2 //在当前的类文件中引入已经安装的第三方类库  3 import SwiftValIDator  4   5 //使视图控制器类遵循表单验证协议。  6 class VIEwController: UIVIEwController,ValIDationDelegate {  7       8     //创建五个文本框属性,  9     //这五个文本框属性,将和故事板的五个文本框控件进行连接。 10     @IBOutlet weak var fullnameTextFIEld: UITextFIEld! 11     @IBOutlet weak var emailTextFIEld: UITextFIEld! 12     @IBOutlet weak var phoneNumberTextFIEld: UITextFIEld! 13     @IBOutlet weak var zipcodeTextFIEld: UITextFIEld! 14     @IBOutlet weak var emailConfirmTextFIEld: UITextFIEld! 15      16     //创建五个标签属性, 17     //这五个标签属性,将和故事板的五个标签控件进行连接。 18     //用来显示表单验证的错误信息。 19     @IBOutlet weak var fullnameErrorLabel: UILabel! 20     @IBOutlet weak var emailErrorLabel: UILabel! 21     @IBOutlet weak var phoneNumberErrorLabel: UILabel! 22     @IBOutlet weak var zipcodeErrorLabel: UILabel! 23     @IBOutlet weak var emailConfirmErrorLabel: UILabel! 24      25     //初始化一个表单验证器对象 26     let valIDator = ValIDator() 27      28     overrIDe func vIEwDIDLoad() { 29         super.vIEwDIDLoad() 30          31         //给视图添加一个触摸手势,用来关闭由于文本框控件处于焦点时,所d出的键盘。 32         self.vIEw.addGestureRecognizer(UITapGestureRecognizer(target: self, 33                                                               action: #selector(VIEwController.hIDeKeyboard))) 34          35         //设置验证器的外观样式 36         valIDator.styletransformers( 37             //设置当验证成功时的样式 38             success:{ (valIDationRule) -> VoID in 39             //设置错误提示标签处于隐藏状态 40             valIDationRule.errorLabel?.isHIDden = true 41             //设置错误提示标签的内容为空的字符串 42             valIDationRule.errorLabel?.text = "" 43             //对文本框进行一些外观的设置 44             if let textFIEld = valIDationRule.fIEld as? UITextFIEld 45             { 46                 //设置文本框的层的边框颜色为绿色 47                 textFIEld.layer.bordercolor = UIcolor.green.cgcolor 48                 //设置文本框的边框的宽度为1 49                 textFIEld.layer.borderWIDth = 1.0 50             } 51             }, 52  53             //接着设置当验证失败时的样式 54             error:{(valIDationError) -> VoID in 55             //设置错误提示标签处于显示状态 56             valIDationError.errorLabel?.isHIDden = false 57             //设置错误提示标签的内容为错误的提示消息 58             valIDationError.errorLabel?.text = valIDationError.errorMessage 59             //对文本框进行一些外观的设置 60             if let textFIEld = valIDationError.fIEld as? UITextFIEld 61             { 62                 //设置文本框的层的边框颜色为红色 63                 textFIEld.layer.bordercolor = UIcolor.red.cgcolor 64                 //设置文本框的边框的宽度为1 65                 textFIEld.layer.borderWIDth = 1.0 66             } 67         }) 68          69         //给验证器对象,注册需要进行验证的文本框,以验证失败时的错误标签 70         //同时还设置了两个验证时的规则,即进行非空验证和全名验证 71         valIDator.registerFIEld(fullnameTextFIEld, 72                                 errorLabel: fullnameErrorLabel, 73                                 rules: [requiredRule(), 74                                 FullnameRule()]) 75  76         //进行非空验证和邮箱格式验证 77         valIDator.registerFIEld(emailTextFIEld, 78                                 errorLabel: emailErrorLabel, 79                                 rules: [requiredRule(), 80                                 EmailRule()]) 81  82         //增加了一个匹配验证的规则,以保证两个邮箱文本框,具有相同的内容。 83         valIDator.registerFIEld(emailConfirmTextFIEld, 84                                 errorLabel: emailConfirmErrorLabel, 85                                 rules: [requiredRule(), 86                                 ConfirmationRule(confirmFIEld: emailTextFIEld)]) 87  88         //增加了一个最小长度的验证,以验证是否输入了9个以上的字符 89         valIDator.registerFIEld(phoneNumberTextFIEld, 90                                  errorLabel: phoneNumberErrorLabel, 91                                 rules: [requiredRule(), 92                                 MinLengthRule(length: 9)]) 93         //增加了一个邮政编码格式的验证条件 94         valIDator.registerFIEld(zipcodeTextFIEld, 95                                 errorLabel: zipcodeErrorLabel, 96                                 rules: [requiredRule(), 97                                 ZipCodeRule()]) 98     } 99     100     //添加一个方法,用来响应提交按钮的点击事件。101     //该方法将为故事板中的提交按钮进行连接102     @IBAction func submitTapped(_ sender: AnyObject)103     {104         //在控制台输出日志105         print("ValIDating...")106         //并调用验证器进行表单的验证 *** 作。107         valIDator.valIDate(self)108     }109     110     //添加一个方法,当验证成功时调用该方法。111     func valIDationSuccessful()112     {113         //在控制台输出验证成功的语句114         print("ValIDation Success!")115         //创建一个警告窗口,显示验证成功的信息。116         let alert = UIAlertController(Title: "Success",117                                       message: "You are valIDated!",118                                       preferredStyle: UIAlertControllerStyle.alert)119         //给警告窗口添加一个按钮,用于关闭警告窗口。120         let defaultAction = UIAlertAction(Title: "OK",style: .default,handler: nil)121         alert.addAction(defaultAction)122         //在当前的视图控制器中,以模态的方式打开警告窗口。123         self.present(alert,animated: true,completion: nil)124     }125     126     //添加一个方法,当验证失败时调用该方法。127     func valIDationFailed(_ errors:[(ValIDatable,ValIDationError)])128     {129         print("ValIDation Failed!")130     }131     132     //添加一个方法,当用户点击根视图时,隐藏d出的键盘133     func hIDeKeyboard()134     {135         self.vIEw.endEditing(true)136     }137 }

在项目导航区,打开故事版文件【Main.storyboard】

点击【显示辅助编辑器】按钮,显示辅助编辑器。

在代码编辑区名称属性左侧的连接提示图标上点击,并拖动到所需要连接到的控件。

@H_404_0@ 总结

以上是内存溢出为你收集整理的[Swift通天遁地]二、表格表单-(8)快速实现表单的输入验证全部内容,希望文章能够帮你解决[Swift通天遁地]二、表格表单-(8)快速实现表单的输入验证所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1021865.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存