Button控件实现发送验证码倒计时方法

原创 2015年11月17日 19:24:32
// 创建button控件
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    button.frame = CGRectMake(100, 100, 100, 100);
    button.backgroundColor = [UIColor purpleColor];
    button.tag = 100;
    [button setTitle:@"发送验证码" forState:UIControlStateNormal];
    [button addTarget:self action:@selector(buttonClick:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:button];

// 设置倒计时初值(应该设置成属性)
    self.number = 5;

}

// 实现button点击事件
// 点击后触发一个计时器方法 
- (void)buttonClick:(UIButton *)button
{
    // 倒计时核心 每隔 一秒钟 时间递减
    // 计时器(每隔多少时间 调用一个方法)
    // (NSTimeInterval) 代表时间间隔
    NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerAction:) userInfo:@"button倒计时" repeats:YES];
    // 计时器开始
    [timer fire];
    // 计时器方法开始后 button的交互应该关掉 不然点一次button就会创建一个timer
    button.userInteractionEnabled = NO;

}

// 计时器方法的实现
- (void)timerAction:(NSTimer *)timer
{
    // 改button的标题
    UIButton *button = (UIButton *)[self.view viewWithTag:100];
    NSString *buttonTitle = [NSString stringWithFormat:@"%ld",self.number--];
    [button setTitle:buttonTitle forState:UIControlStateNormal];
// 判断倒计时是否结束(标题是否为0)
    if ([[button titleForState:UIControlStateNormal] isEqualToString:@"0"]) {
        // 停止计时器
        [timer invalidate];
        // 更改标题
        [button setTitle:@"发送验证码" forState:UIControlStateNormal];
        // 打开交互
        button.userInteractionEnabled = YES;
        // 重置时间
        self.number = 5;

    }
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Android 获取验证码后 在Button控件上 显示倒计时

方法一: 只展示核心代码: private TimeCount time; 然后,在 Button 的点击事件里写 time = new TimeCount(60000, 1000); ti...

自定义验证码发送倒计时控件

自定义验证码发送倒计时控件转载请标明出处:Smart_Arvin的专栏最近做项目开发时再次用到短信验证码接收的功能,不能忍了,就自己写了一个通用的自定义控件,再也不用重复造轮子了。话不多说,code呈...

APP中注册时常用的发送验证码的Button,带倒计时重发功能

注册时我们经常会碰到,给手机发送验证码的功能,点击发送验证码,然后就是显示剩余多少秒之后重新发送验证码,效果图如下: 为了实现这样的效果,Android中内置的普通的Button是达不到要...

自定义验证码倒计时Button

  • 2015年09月16日 17:56
  • 1.59MB
  • 下载

Android自定义控件系列(七)—验证码倒计时

今天给大家带来一个新的控件——验证码倒计时,先看下效果图1 效果演示2 使用方式...

Android手机验证码倒计时控件

自定义手机验证码倒计时控件CheckCodeCountDown 继承 TextView 代码如下: 用法如下: activity_main user_get_check_code_sh...

Android实战简易教程-第四十一枪(显示倒计时的Button-适用于获取验证码)

最近在做获取验证码的功能,考虑到优良的用户体验,决定制作一个拥有倒计时提示的Button按钮,在网上查了一些资料,很是简单的就能实现,我写了一个小Demo,大家可以应用到自己的项目中。1.activi...

对安卓获取验证码倒计时60秒Button按钮的简单封装

鉴于经常在注册获取验证码时候需要一个倒计时按钮觉得很麻烦,抽点时间写了一个TimeButton 键鼠下特性, TimeButton使用的时候跟普通Button一样没有冲突, TimeButton在倒计...
  • yung7086
  • yung7086
  • 2015年02月06日 13:22
  • 23616

Android 点击Button获取验证码倒计时效果

参考:http://www.2cto.com/kf/201506/412668.html 近期在做一个商城项目,点击Button获取验证码是必不可少的,那么如何实现倒计时效果呢?也是发愁了一...
  • Tom91
  • Tom91
  • 2016年11月12日 21:54
  • 4757

js实现发送短信验证码后的倒计时功能(无视页面刷新)

cookie最初创建的有效时间是60秒.也就是说,你如果在倒计时为20的时候,关闭网页.20秒之后再打开,是不会有倒计时显示的;但是,如果倒计时为20时,关闭页面,如果在20秒内重新打开页面,是有倒计...
  • babyxue
  • babyxue
  • 2017年04月21日 09:11
  • 296
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Button控件实现发送验证码倒计时方法
举报原因:
原因补充:

(最多只允许输入30个字)