美文网首页
iOS 获取验证码倒计时方法

iOS 获取验证码倒计时方法

作者: 龍飝 | 来源:发表于2018-09-05 10:05 被阅读94次

import <UIKit/UIKit.h>

@interface UIButton (YasinTimerCategory)

  • (void)startCountDownTime:(int)time withCountDownBlock:(void(^)(void))countDownBlock;

@end

import "UIButton+YasinTimerCategory.h"

static NSString *yasinTempText;

@implementation UIButton (YasinTimerCategory)

  • (void)startCountDownTime:(int)time withCountDownBlock:(void(^)(void))countDownBlock{

    [self initButtonData];

    [self startTime:time];

    if (countDownBlock) {
    countDownBlock();
    }
    }

  • (void)initButtonData{

    yasinTempText = [NSString stringWithFormat:@"%@",self.titleLabel.text];

}

  • (void)startTime:(int)time{

    __block int timeout = time;

    dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);

    dispatch_source_t _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0,queue);

    dispatch_source_set_timer(_timer,dispatch_walltime(NULL, 0),1.0 * NSEC_PER_SEC, 0);

    dispatch_source_set_event_handler(_timer, ^{

      //倒计时结束
      if(timeout <= 0){
          
          dispatch_source_cancel(_timer);
          
          dispatch_async(dispatch_get_main_queue(), ^{
              
              [self setTitle:yasinTempText forState:UIControlStateNormal];
              self.userInteractionEnabled = YES;
              
          });
          
      }else{
          
          dispatch_async(dispatch_get_main_queue(), ^{
              
              NSString *text = [NSString stringWithFormat:@"%02d秒重新获取",timeout];
              [self setTitle:text forState:UIControlStateNormal];
              self.userInteractionEnabled = NO;
              
          });
          
          timeout --;
          
      }
    

    });

    dispatch_resume(_timer);

}

@end

调用方法
[self.verificationBtn startCountDownTime:60 withCountDownBlock:^{

        NSLog(@"开始倒计时");
        
        
        
    }];

相关文章

  • 三种方法使用jquery获取验证码倒计时

    三种方法使用jquery获取验证码倒计时,并设置防重复点击 获取验证码1 获取验证码2 获取验证码3 /...

  • iOS 短信验证码倒计时按钮的实现

    验证码倒计时按钮的应用是非常普遍的,本文介绍了IOS实现验证码倒计时功能,点击获取验证码,进入时间倒计时,感兴趣的...

  • iOS倒计时

    pragma mark ---获取验证码 /**获取验证码,倒计时@param sender 获取验证码的按...

  • 在iOS9或更老系统版本中使用NSTimer+Block方法

    在iOS9或更老系统版本中使用NSTimer+Block方法 在许多倒计时功能(例如获取短信验证码)的时候,我们通...

  • 【微信小程序】获取验证码60s倒计时

    验证码倒计时,手机号格式校验。 【简要说明】code字段在获取验证码之前显示验证码,点击获取验证码后显示倒计时数字...

  • IOS倒计时按钮实现思路及Demo

    前言 最近因为项目中涉及到短信获取验证码功能,并且获取验证码按钮需要显示倒计时功能,同时当从获取验证码界面在倒计时...

  • iOS实现倒计时的三种方式

    iOS实现倒计时的三种方式 做iOS app开发的过程当中,经常会出现获取验证码等需求,这个时候一般会使用倒计时来...

  • iOS 验证码倒计时

    /** 倒计时方法 在点击获取验证码按钮的方法里调用此方法即可实现, 需要在倒计时里修改按钮相关的请在此方法里yo...

  • Android_验证码按钮倒计时

    在注册获取验证码时候需要一个倒计时按钮。 CountDownTimer 构造器、方法 源码 CountDownTi...

  • swift 倒计时按钮设置

    获取验证码倒计时的按钮。 在你需要的时候调用: 这样就实现了你的获取验证码倒计时,不过还有一个最重要的问题:当你初...

网友评论

      本文标题:iOS 获取验证码倒计时方法

      本文链接:https://www.haomeiwen.com/subject/flgowftx.html