iOS开发--验证码

第一步,拖两个空间textfiled和button到storyboard上的viewcontroller上。

第二步,拖线,链接到.h文件中代码如下:


1

@property (weak, nonatomic) IBOutlet UIButton *l_timeButton;

第三步,在,m文件中为l_timeButton设置监听器,监听点击事件。


1

2

3

4

- (void)viewDidLoad {

    [super viewDidLoad];

    [_l_timeButton addTarget:self action:@selector(startTime) forControlEvents:UIControlEventTouchUpInside];

}

第四步,在方法“startTime”中实现倒计时功能


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

-(void)startTime{

    __block int timeout=30; //倒计时时间

    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(), ^{

                //设置界面的按钮显示 根据自己需求设置

                [_l_timeButton setTitle:@"发送验证码" forState:UIControlStateNormal];

                _l_timeButton.userInteractionEnabled = YES;

            });

        }else{

            int seconds = timeout % 60;

            NSString *strTime = [NSString stringWithFormat:@"%.2d", seconds];

            dispatch_async(dispatch_get_main_queue(), ^{

                //设置界面的按钮显示 根据自己需求设置

                //NSLog(@"____%@",strTime);

                [UIView beginAnimations:nil context:nil];

                [UIView setAnimationDuration:1];

                [_l_timeButton setTitle:[NSString stringWithFormat:@"%@秒后重新发送",strTime] forState:UIControlStateNormal];

                [UIView commitAnimations];

                _l_timeButton.userInteractionEnabled = NO;

            });

            timeout--;

        }

    });

    dispatch_resume(_timer);

}

一个验证码倒计时的功能就写好了

时间: 2024-10-05 16:08:24

iOS开发--验证码的相关文章

iOS开发—验证码倒计时

__block int timeout=59; //倒计时时间 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

IOS开发探索(一):CocoalPods相关

最近在鼓捣一些IOS的东西,很没出息的什么也没整出来.这是一个比较陌生的环境(从win跨越到Mac,时差倒不过来),学习能力.接受能力又不是很强,很多东西不容易理解.现在决定把现在随时遇到的问题解决掉,并且发表到博客上,以后学习回顾也可以重温. 在第一个IOS博客中,我没有去介绍IOS环境等内容,那个在以后可以了解一下,现在暂时把问题解决掉. CocalPods,什么是CocalPods呢?它在我理解来看应该像是一种环境配置和装载的工具. 我们知道在进行IOS开发的时候,经常要用到很多第三方的插

iOS开发基础知识--碎片11

iOS开发基础知识--碎片11  1:AFNetwork判断网络状态 #import “AFNetworkActivityIndicatorManager.h" - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //网络 [[AFNetworkActivityIndicatorManager sharedManager] se

ios开发 部分内容整理

1.ViewController的生命周期 按结构可以对iOS的所有ViewController分成两类: 1.主要用于展示内容的ViewController,这种ViewController主要用于为用户展示内容,并与用户交互,如UITableViewController,UIViewController. 2.用于控制和显示其他ViewController的ViewController.这种ViewController一般都是一个ViewController的容器.如UINavigation

iOS开发tips-神奇的UITableView

概述 UITableView是iOS开发中使用频率最高的UI控件,在前面的文章中对于UITableView的具体用法有详细的描述,今天主要看一些UITableView开发中的常见一些坑,这些坑或许不深,但是如果开发中注意不到的话往往比较浪费时间. 神奇的section header 事情的起因是一个网友说要实现一个类似下图界面,但是不管是设置sectionHeaderHeight还是代理方法中实现func tableView(_ tableView: UITableView, heightFor

iOS开发网络篇—文件的上传

iOS开发网络篇—文件的上传 说明:文件上传使用的时POST请求,通常把要上传的数据保存在请求体中.本文介绍如何不借助第三方框架实现iOS开发中得文件上传. 由于过程较为复杂,因此本文只贴出部分关键代码. 主控制器的关键代码: YYViewController.m 1 #import "YYViewController.h" 2 3 #define YYEncode(str) [str dataUsingEncoding:NSUTF8StringEncoding] 4 5 @inter

iOS开发UI篇—推荐两个好用的Xcode插件(提供下载链接)

iOS开发UI篇—推荐两个好用的Xcode插件(提供下载链接) 这里推荐两款好用的Xcode插件,并提供下载链接. 一.插件和使用如下: 1.两款插件 对项目中图片提供自动提示功能的插件:KSImageNamed-Xcode-master 提供快速创建自动注释:VVDocumenter-Xcode-master 2.使用介绍: (1)KSImageNamed-Xcode-master的使用 安装该插件后,会对文件中图片进行智能提示. (2)VVDocumenter-Xcode-master能提供

IOS 开发环境,证书和授权文件等详解

一.成员介绍 1.    Certification(证书) 证书是对电脑开发资格的认证,每个开发者帐号有一套,分为两种: 1)    Developer Certification(开发证书) 安装在电脑上提供权限:开发人员通过设备进行真机测试. 可以生成副本供多台电脑安装: 2)      Distribution Certification(发布证书) 安装在电脑上提供发布iOS程序的权限:开发人员可以制做测试版和发布版的程序. 不可生成副本,仅有配置该证书的电脑才可使用:(副本制做介绍在

iOS开发之保存照片到系统相册(Photo Album)

iOS开发之保存照片到系统相册(Photo Album) 保存照片到系统相册这个功能很多社交类的APP都有的,今天我们简单讲解一下,如何将图片保存到系统相册(Photo Album). 创建UIImageView 创建UIImageView是为了将照片展示出来,我们是要把UIImage保存到系统相册(Photo Album): #define SCREEN [UIScreen mainScreen].bounds.size self.image = [UIImage imageNamed:@"i