苹果开发之ios 验证码倒计时

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

开发之ios 验证码倒计时-ios开发验证码倒计时">

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

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

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

- (void)viewDidLoad {
    [super viewDidLoad];
    [_l_timeButton addTarget:self action:@selector(startTime) forControlEvents:UIControlEventTouchUpInside];
}

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

-(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-09-23 03:23:28

苹果开发之ios 验证码倒计时的相关文章

苹果开发之ios图片上传方法

方法1 在项目中我们经常会遇到需要上传图片的地方,比如更换头像,上传证件照片等.下面介绍一种上传图片的方法. 首先我们需要在项目里打开手机的相册或者相机,然后在下面这个代理方法里进行图片的上传操作. 需要遵循 <UIImagePickerControllerDelegate,UINavigationControllerDelegate>代理. -(void)imagePickerController:(UIImagePickerController *)picker didFinishPick

苹果开发之iOS 摇一摇动画

微信的摇一摇动画效果看起来很棒,这里是类似的摇一摇动画效果,代码示例:  代码如下 复制代码 #pragma mark - 摇一摇 - (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event {     if (motion == UIEventSubtypeMotionShake) {         AudioServicesPlaySystemSound(kSystemSoundID_Vibrate); //震

苹果开发之iOS加入购物车动画效果

 代码如下 复制代码 #pragma mark -购物篮按钮点击事件 -(void)shoppingCartButtonAction:(UIButton*)sender {     if ([[userDef objectForKey:@"id"]isEqualToString:@"0"]) {         [self showHUDTextOnly:@"请登录后,再进行操作" ];         return;     }     NSD

iOS开发之iOS程序的启动过程

程序启动的完整过程: (1)main函数 (2)UIApplicationMain * 创建UIApplication对象 * 创建UIApplication的delegate对象 (3)delegate对象开始处理(监听)系统事件(没有storyboard) * 程序启动完毕的时候, 就会调用代理的application:didFinishLaunchingWithOptions:方法 * 在application:didFinishLaunchingWithOptions:中创建UIWind

ios开发之iOS 数据缓存问题

为了节约流量,同时也是为了更好的用户体验,目前很多应用都使用本地缓存机制于是我从网上查阅了相关的资料,发现总体上说有两种方法.一种是自己写缓存的处理,一种是采用ASIHTTPRequest中的ASIDownloadCache. 在这里我主要介绍第一种自习写缓存的处理方式. 1.主要思路就是第一次有网络加载数据将数据写入沙盒中,然后以后登录对网络状态进行判断,若无网络就使用沙盒数据,有网络就请求API获得数据.   //写入数据 NSArray *arr = NSSearchPathForDire

苹果开发之Swift字体图标的使用及样例(使用Font Awesome字体库,非图片)

一,什么是字体图标 (1)现在比较流行使用字体图标,所谓字体图标其实就是一个包含许多图标的字体库.同我们常用的字体一样,这个也可以理解为一种特殊字体,只不过里面包含的都是图标. (2)既然是字体,那么最方便的就是可以随意在代码中更改颜色和大小而不会失真.这样不需要因为要适配各种尺寸而制作多个图片,或者做多套颜色的图标用来标识不同状态. (3)无论是按钮图标还是导航栏图标,也不管是网站开发还是移动应用开发,字体图标都能适用. (比如下面几个就可以使用字体图标实现,像 hangge.com 右侧导航

IOS实现验证码倒计时功能(二)_IOS

验证码倒计时按钮的应用是非常普遍的,该Blog就和你一起来实现验证码倒计时的效果,定义一个发送验证码的按钮,添加点击事件,具体内容如下 具体代码: 定义一个发送验证码的按钮,添加点击事件 //发送验证码按钮 _sentCodeBtn = [[UIButton alloc] initWithFrame:CGRectMake(kScreenWidth - 27 - 4 - 94, CGRectGetMinY(_registerCodeFD.frame) + 4, 94, 40)]; [_sentCo

IOS实现验证码倒计时功能(一)_IOS

验证码倒计时按钮的应用是非常普遍的,该Blog就和你一起来写一个IDCountDownButton来实现验证码倒计时的效果.你可以想使用普通的UIButton类型按钮一样,只需要设置其倒计时时长(若未设置,默认为60秒),就可以轻松的实现点击countDownButton开始倒计时,倒计时结束方可重新点击. 一.实现效果 如图 二.实现思路 1.自定义一个IDCountDownButton,重写 beginTrackingWithTouch:withEvent: 拦截button的点击事件,根据

iOS获取验证码倒计时效果_IOS

本文实例为大家分享了iOS倒计时获取验证码的具体代码,供大家参考,具体内容如下 1. 倒计时发送验证码,界面跳转计时会重置 /**重新发送短信的计时*/ -(void)fireTimer{ __block int timeout=180; //倒计时时间 dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); dispatch_source_t _timer = dispatc