Swift UITextField封装,电话号码,身份证,银行卡

2017-10-23  本文已影响0人  Buddha_like

最近抽时间将项目优化了一下,发现输入框这个东西好烦啊,各种输入限制,之前写的时候也是赶项目,封装的不是很理想,于是抽时间将会用到的输入框从新封装了一下,方便以后在项目中使用!
这里不讲逻辑了,因为大同小异,只是将类的使用简单说明下,具体代码,用的话自己下载吧,文章下面会给链接
先看效果吧:

屏幕快照 2017-10-23 03.04.58 PM.png

手机号


Snip20171023_1.png

身份证号码


Snip20171023_2.png
银行卡号 Snip20171023_4.png

6-18位数字和字母组成的密码-密文+非密文展示

Snip20171023_5.png Snip20171023_6.png

下面就是框架的类的作用,有需要修改的自行到对应的文件修改即可

Snip20171023_8.png

外部调用 哪个类调用,需要类遵守JJTextFieldRegular协议

var typeID : NSString?
let phoneTextField = JJTextField.init(frame: CGRect(x: 30, y: 100, width: 300, height: 40))

override func viewDidLoad() {
    super.viewDidLoad()
    view.backgroundColor = UIColor.white
    let btn = UIButton().loadBtn()
    btn.center = self.view.center
    btn.addTarget(self, action: #selector(action), for: .touchUpInside)
    view.addSubview(btn)
    if typeID == "0" {
        phoneTextField.type = .phone
    }else if typeID == "1" {
        phoneTextField.type = .IDCard
    } else if typeID == "2" {
        phoneTextField.type = .bankCard
    }else if typeID == "3" {
        phoneTextField.type = .password
    }
    view.addSubview(phoneTextField)
}

@objc func action() {
    if typeID == "0" {
        self.phone()
    }else if typeID == "1" {
        self.idCard()
    } else if typeID == "2" {
        print("暂时无判断")
    }else if typeID == "3" {
        self.password()
    }
}

//手机号判定
func phone() {
    let bool = self.jj_checkPhone(phoneTextField.textOverridee())
    if bool {
        print(phoneTextField.textOverridee())
    }else{
        print("非手机号")
    }
}

//密码
func password() {
    let bool = self.jj_checkPassworld(phoneTextField.textOverridee())
    if bool {
        print(phoneTextField.textOverridee())
    }else{
        print("非密码格式")
    }
}

//身份证
func idCard() {
    let bool = self.jj_checkPassworld(phoneTextField.textOverridee())
    if bool {
        print(phoneTextField.textOverridee())
    }else{
        print("非身份证")
    }
}

文章Demo下载链接 :https://gitee.com/liu_j_j/JJ_textField.git
注:一直用码云,所以代码都是传到码云的
终端下载: (1)cd DeskTop
(2)git clone https://gitee.com/liu_j_j/JJ_textField.git

上一篇下一篇

猜你喜欢

热点阅读