iOS中支付密码输入框

前言:做这个之前大概浏览了一下,大家的思路基本上都是用1个textField,六个框用六根竖线,还有六个小圆点。感觉这样很浪费,不是很完美,就打算试着做6个输入框的。

难点:做6个输入框的,难点再于如何输入一个密码之后,焦点跳入下一个输入框。

做法:  UI使用xib,在小屏幕上会有遮盖情况,考虑到大家都用到第三方键盘来解决这个问题,就没有适配。透明view+白色view+白色输入框superView+6个输入框。

1.把第一个输入框设为响应事件,页面出现的时候,键盘随之出现。

2.用数组把6个输入框存起来。

 3.在输入框即将开始输入的时候,只把即将输入的输入框交互开启,其他输入框交互关闭。

iOS中支付密码输入框_第1张图片

4.当正在输入时,每个输入框只输入一位密码后跳入下一输入框,同样,正在输入的输入框交互开启,其余关闭。当输入到最后一个输入框的时候,不再进入其他输入框,收回键盘并关闭所有的输入框的交互。输入框的密码也是在此时获取。

iOS中支付密码输入框_第2张图片

5.重新输入即清除所有密码,弹出键盘,让第一个输入框响应事件,获取焦点。

iOS中支付密码输入框_第3张图片

6.删除密码,用到了扩展类,跳过第一个输入框的删除。

iOS中支付密码输入框_第4张图片

效果展示:


iOS中支付密码输入框_第5张图片

结语:另一个难点在于输入框交互的控制,由于是6个输入框,就必须确保,只开启当前正在输入的输入框的交互。在这一点上费了些时间,几次想要放弃。最后还是重新理清思路,解决了这一问题。经过本人测试,发现还是比较完美的,目前找不出什么bug,代码也写的比较简单,都能看懂。代码还有可优化的空间,由于项目紧迫,就不在优化了。GItHub:https://github.com/tc976562936/PayPassWordInput.git

你可能感兴趣的:(iOS中支付密码输入框)