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


    -(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];
                });
            });
            
        }
    }

  • 相关阅读:
    反射
    关于EwebEeditor 不能上传图片问题解决方法
    js去掉前后空格
    园子开张
    使用Python 爬取 京东 ,淘宝。 商品详情页的数据。(避开了反爬虫机制)
    c#对于加密的一点整合 (AES,RSA,MD5,SHA256)
    移动战略调查:应用开发者首选微软Windows
    Surface Pro打包微软精华 今晚在华开售
    Ceph学习全过程 基于N版
    k8s中部署wordpress
  • 原文地址:https://www.cnblogs.com/wangyang1213/p/5632684.html
Copyright © 2020-2023  润新知