广告
返回顶部
首页 > 资讯 > 移动开发 >iOS实现短信验证码倒计时
  • 369
分享到

iOS实现短信验证码倒计时

iOS短信验证码 2022-05-30 00:05:41 369人浏览 八月长安
摘要

在开发中,经常在需要用户注册的时候会需要实现验证码倒计时的功能,下面是解决这个问题的两种思路(使用UIButton控件) 一、利用NSTimer计时器 新建一个UIButton按钮

开发中,经常在需要用户注册的时候会需要实现验证码倒计时的功能,下面是解决这个问题的两种思路(使用UIButton控件)

一、利用NSTimer计时器

新建一个UIButton按钮,设置成属性,名为codeButton。(UIButton样式一定要为自定义,否则后面倒计时数秒时会出现闪烁现象)

定义一个NSTimer的属性,名为timer,同时定义一个用于计时的int变量time,设置初始值为60。


//启动一个定时器
self.timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(operatePerSecond) userInfo:nil repeats:YES];
 
//实现定时器中的方法
- (void)operatePerSecond {
    if (time == 1) {
      [self.timer invalidate];
      time = 60;
      [self.codeButton setTitle:@"重新获取" forState:UIControlStateNORMal];
      self.codeButton.tintColor = [UIColor blackColor];
      self.codeButton.enabled = YES;
    }else {
      time --;
      [self.codeButton setTitle:[NSString stringWithFormat:@"%ds" ,time] forState:UIControlStateNormal];
    }
}

此时主要逻辑已经完成,但要记得:在本页面即将消失的时候也要停掉计时器self.timer。

二、利用GCD实现

定义一个用于计时的time(此时要用block修饰)---  block int time = 60;


  //倒计时时间
  __block int timeout = 60;
  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_TIME_NOW, 1.0 * NSEC_PER_SEC, 0 * NSEC_PER_SEC);
  dispatch_source_set_event_handler(timer, ^{
    if(timeout == 1){
      //倒计时结束,关闭
      dispatch_source_cancel(timer);
      dispatch_async(dispatch_get_main_queue(), ^{
      timeout = 60;
      [self.codeButton setTitle:@"重新获取" forState:UIControlStateNormal];
      self.codeButton.tintColor = [UIColor blackColor];
      self.codeButton.enabled = YES;
      });
    }else{
      NSString *strTime = [NSString stringWithFormat:@"%ds",timeout];
      dispatch_async(dispatch_get_main_queue(), ^{
        [self.codeButton setTitle:strTime forState:UIControlStateNormal];
      });
      timeout--;
    }
  });
dispatch_resume(timer);

把上述代码写入点击方法中即可实现倒计时效果。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: iOS实现短信验证码倒计时

本文链接: https://www.lsjlt.com/news/30242.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • iOS实现短信验证码倒计时
    在开发中,经常在需要用户注册的时候会需要实现验证码倒计时的功能,下面是解决这个问题的两种思路(使用UIButton控件) 一、利用NSTimer计时器 新建一个UIButton按钮...
    99+
    2022-05-30
    iOS 短信 验证码
  • 微信小程序实现短信验证码倒计时
    本文实例为大家分享了微信小程序实现短信验证码倒计时的具体代码,供大家参考,具体内容如下 初始效果 当点击按钮时候设置禁止点击效果:如下图 话不多说,直接上代码 1.wxml部分 ...
    99+
    2022-11-13
  • 微信小程序实现发送短信验证码倒计时
    本文实例为大家分享了微信小程序发送短信验证码倒计时的具体代码,供大家参考,具体内容如下 效果图 WXML文件 <view class="container"> ...
    99+
    2022-11-12
  • 微信小程序如何实现短信验证码倒计时
    这篇文章主要讲解了“微信小程序如何实现短信验证码倒计时”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“微信小程序如何实现短信验证码倒计时”吧!初始效果当点击按钮时候设置禁止点击效果:如下图话不...
    99+
    2023-06-30
  • 如何实现基于vue的短信验证码倒计时
    小编给大家分享一下如何实现基于vue的短信验证码倒计时,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一般获取短信验证码的时候会用...
    99+
    2022-10-19
  • Android封装实现短信验证码的获取倒计时
    如图所示的效果相信大家都不陌生,我们可以使用很多种方法去实现此效果,这里自己采用CountDownTimer定时器简单封装下此效果,方便我们随时调用。 首页先在attrs.xml中...
    99+
    2023-03-12
    Android封装倒计时 Android短信倒计时 Android验证码倒计时
  • Android实现发送短信验证码倒计时功能示例
    一、简介: 开发中在用户注册或找回密码之类的功能,经常会遇到获取短信验证码,获取验证码后需要等待1分钟倒计时,这段时间是不能再次发送短信请求的。 效果图: 二、实现步骤: ...
    99+
    2022-06-06
    发送短信 倒计时 示例 验证码 短信验证码 Android
  • Android短信验证码倒计时验证的2种常用方式
    前言 ​本文主要介绍的是短信验证码功能,这里总结了两种常用的方式,可以直接拿来使用。 看图 计时器 说明:这里的及时从10开始,是为了演示的时间不要等太长而修改...
    99+
    2022-06-06
    倒计时 验证码 Android
  • Android封装怎么实现短信验证码的获取倒计时
    今天小编给大家分享一下Android封装怎么实现短信验证码的获取倒计时的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。如图所示...
    99+
    2023-07-05
  • Android自定义Chronometer实现短信验证码秒表倒计时功能
    本文实例为大家分享了Chronometer实现倒计时功能,Android提供了实现按照秒计时的API,供大家参考,具体内容如下 一、自定义ChronometerView 继续自...
    99+
    2022-06-06
    倒计时 验证码 秒表 短信验证码 Android
  • jQuery如何实现倒计时重新发送短信验证码功能
    小编给大家分享一下jQuery如何实现倒计时重新发送短信验证码功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体如下:<...
    99+
    2022-10-19
  • 微信小程序实现验证码倒计时
    本文实例为大家分享了微信小程序实现验证码倒计时的具体代码,供大家参考,具体内容如下 wxml代码: <view class='container'>   <form...
    99+
    2022-11-13
  • Android如何使用RxBinding与RxJava2实现短信验证码倒计时功能
    这篇文章给大家分享的是有关Android如何使用RxBinding与RxJava2实现短信验证码倒计时功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。场景:注册账号页面时,我们点击按钮发送验证码,在等待验证码时...
    99+
    2023-05-30
    android
  • JavaScript如何实现验证码倒计时
    小编给大家分享一下JavaScript如何实现验证码倒计时,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! ...
    99+
    2022-10-19
  • vue实现验证码倒计时按钮
    本文实例为大家分享了vue实现验证码倒计时按钮的具体代码,供大家参考,具体内容如下 1、点击“发送验证码”按钮后进行逻辑判断: ▶️ 如果邮箱已输入且格式正...
    99+
    2022-11-12
  • Vue3 实现验证码倒计时功能
    目录前言实现效果PS:Vue3 - 验证码按钮倒计时实现前言 倒计时的运用场景:获取手机验证码倒计时、获取邮箱验证码倒计时等场景,废话不多说,开始吧。 之前给大家介绍过Vue3&nb...
    99+
    2023-01-07
    Vue3 验证码倒计时 Vue获取验证码倒计时 vue3验证码按钮倒计时
  • 微信小程序实现验证码倒计时效果
    本文实例为大家分享了微信小程序验证码倒计时效果的具体代码,供大家参考,具体内容如下 如果写过js的倒计时,那么小程序中使用也是差不多的; 代码: data: {       daoj...
    99+
    2022-11-13
  • javascript实现发送短信倒计时
    本文实例为大家分享了javascript实现发送短信倒计时的具体代码,供大家参考,具体内容如下 实现思路: 1、js获取发送按钮元素对象 2、设置一个发送间隔时间(全局变量) 3、...
    99+
    2022-11-12
  • vue_drf实现短信验证码
    目录一、需求1,需求二、sdk参数配置  1,目录结构三、代码实现1,后端代码2,前端代码一、需求 1,需求   我们在做网站开发时,登录页面很多情况下是可以用手机号接收短信验证码,...
    99+
    2022-11-12
  • 短信验证码—Java实现
    在业务需求中我们经常会用到短信验证码,比如手机号登录、绑定手机号、忘记密码、敏感操作等,都可以通过短信验证码来保证操作的安全性,于是就记录下了一次开发的过程。 一.架构设计 发送短信是一个比较慢的过程,因为需要用到第三方服务(腾讯云短信...
    99+
    2023-08-17
    java rabbitmq redis 腾讯云 spring boot
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作