PhoneField(OC):手机号输入框

在开发过程中经常的会有手机号输入框的需求,很常用,基本每个项目里面都会用到.只是需求有可能不一样.
在此记录一下我项目中最常用的手机号输入框.

需求:输入手机号,直接格式化为:000 0000 0000的手机号格式.

需求分析:
1:可以直接继承UITextField
2:监听TextField输入事件,并在这个里面搞事情.

开始实现:
1:新建继承UITextField的PhoneField类

2:重写创建方法PhoneField(OC):手机号输入框

3:添加必要设置,在这一步,我们添加了输入事件监听的方法UIControlEventEditingChanged
PhoneField(OC):手机号输入框

4:监听到输入事件的时候搞事情
分析:
这个时候我们需要处理字符串增加的情况和处理删除字符串的情况,并且需要在特定的位置插入空格.所以首先我们要知道事件是增加还是删除.

解决输入还是删除的方法是:
需要声明一个常量来记录一下字符串的长度.
如果最新的长度 > 记录的长度 此时为输入状态
如果最新的长度 < 记录的长度 就是删除

一:处理字符串增加的情况
1:根据需求我们知道,需要在输入的第4位和第9位插入空格.
2:插入空格后的手机号为13位(此时禁止输入)
3:处理完成以后记录字符串长度

二:处理删除字符串的情况
1:处理第4位和第9位插入空格
2:处理完成以后记录字符串长度
PhoneField(OC):手机号输入框

总结:到此为止,已经完成了手机号输入框的全部.技术方面很简单.在此做成demo,方便以后使用.

demo链接