zoukankan      html  css  js  c++  java
  • “获取验证码”那些事

    说到用户注册功能,现在很多app都是使用手机号来作为注册的依据,那自然就离不开手机验证码。为了防止用户重复点击,一般都会做一个倒计时显示。当用户点击后,按钮变灰,并显示xx秒后重新获取,倒计时结束后恢复按钮状态。

    实现起来也不难,关于定时器,可以使用NSTimer或者GCD。不过还是有几个事项需要注意一下:

    1、关于控件选择,是UIButton还是UILabel?

    表面上看这个功能用UIButton实现应该很简单,一来UIButton本身就有点击事件,二来控制UIButton的颜色、是否可点击(userInteractionEnabled)都很方便。但是实际情况是当倒计时开始后,每秒修改UIButton文字时会出现闪烁(画面请自行脑补)。
    所以我选择的是UILabel,通过给他添加tap手势实现点击事件,缺点是没有点击反馈效果。

    2、当用户点击获取验证码后,再返回(视图被pop或者dismiss),再进入这个视图(push或者present),“获取验证码”又变成了可以点击状态,还是存在短时间重复点击的可能。这个情况要说他有漏洞也确实有点勉强,但是还是会有某一群人会觉得很严重。
    那如果不幸的是这一群人中有你的leader或者产品经理或者tester(我就属于不幸的那伙人),呵呵,你“呵呵”之后,又不得不去fix 这个“bug”。
    我这里已经实现了上述功能,并将相关代码封装成了一个工具类,代码放到github上了,这里是链接

    下面是最终的效果:

     
     
     
  • 相关阅读:
    jdbc连接数据库报ORA-12519错误
    Open CV 七种常见阈值分割
    开博第一天
    UIWebView的使用---safri
    转义符
    UIKIT_EXTERN 的简单用法
    iOS 基础 --- tableView的使用(一)
    iOS基础 --- 如何监听一个控件(UITextField篇)
    objective-C和C --- 《位运算》的使用(一)
    assin与weak的区别
  • 原文地址:https://www.cnblogs.com/manji/p/4813520.html
Copyright © 2011-2022 走看看