码迷,mamicode.com
首页 > 其他好文 > 详细

倒计时获取验证码、事件代码

时间:2016-07-01 13:32:15      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:

-(void)sendSMS{
    
    if(isPhone == YES){
          isPhone = NO;
        __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_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(), ^{
                    //设置界面的按钮显示
                    [smsBtn setTitle:@"获取" forState:UIControlStateNormal];
                    smsBtn.userInteractionEnabled = YES;
                });
            }else{
                int seconds = timeout % 120;
                NSString *strTime = [NSString stringWithFormat:@"%.2d", seconds];
                dispatch_async(dispatch_get_main_queue(), ^{
                    //设置界面的按钮显示
                    //NSLog(@"____%@",strTime);
                    [UIView beginAnimations:nil context:nil];
                    [UIView setAnimationDuration:1];
                    [smsBtn setTitle:[NSString stringWithFormat:@"%@",strTime] forState:UIControlStateNormal];
                    [UIView commitAnimations];
                    smsBtn.userInteractionEnabled = NO;
                });
                timeout--;
            }
        });
        dispatch_resume(_timer);
    }else{
        hud = [[MBProgressHUD alloc] initWithView:registerView];
        [registerView addSubview:hud];
        hud.mode = MBProgressHUDModeText;
        [hud setOffset:CGPointMake(0, -200.0f)];
        hud.label.text = @"手机号有误";
        [hud showAnimated:YES];
        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
            sleep(1);
            dispatch_async(dispatch_get_main_queue(), ^{ //回到主线程
                [hud removeFromSuperview];
            });
        });
        
    }
}

倒计时获取验证码、事件代码

标签:

原文地址:http://www.cnblogs.com/wangyang1213/p/5632684.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!