• iOS 短信验证码倒计时按钮的实现


    转载于ios原作者

    验证码倒计时按钮的应用是非常普遍的,本文介绍了IOS实现验证码倒计时功能,点击获取验证码,进入时间倒计时,感兴趣的小伙伴们可以参考一下:
    实现思路:

    >创建按钮,添加点击方法;
    
    >用NSTimer定时器,每秒执行一次,定时改变Button的title,改变Button的样式,设置Button不可点击;
    
    >若倒计时结束,定时器关闭,并改变Button的样式,可以点击;
    

    马上
    在按钮的点击事件里调用该方法

    
    -(void)openCountdown{
    
    
        __block NSInteger time = 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_walltime(NULL, 0),1.0*NSEC_PER_SEC, 0);
    
        dispatch_source_set_event_handler(_timer, ^{    
    
             if(time <= 0){
    
             dispatch_source_cancel(_timer);   
    
             dispatch_async(dispatch_get_main_queue(), ^{              
    
                    [self.authCodeBtn setTitle:@"重新发送" forState:UIControlStateNormal];
    
                    [self.authCodeBtn setTitleColor:[UIColor colorFromHexCode:@"FB8557"] 
    
                    forState:UIControlStateNormal];       
    
                     self.authCodeBtn.userInteractionEnabled = YES;
    
                });
    
            }else{       
    
             int seconds = time % 60;      
    
             dispatch_async(dispatch_get_main_queue(), ^{       
    
                    [self.authCodeBtn setTitle:[NSString stringWithFormat:@"重新发送(%.2d)", seconds] forState:UIControlStateNormal];
    
    
                    [self.authCodeBtn setTitleColor:[UIColor colorFromHexCode:@"979797"] 
    
    forState:UIControlStateNormal];        
    
            self.authCodeBtn.userInteractionEnabled = NO;
    
                });
    
                time--;
    
            }
    
        });
    
        dispatch_resume(_timer);
    
    }
    

    注意:

    • 我们在创建Button时,要设置Button的样式,
    • 当type为:UIButtonTypeCustom时,是读秒的效果。
    • 当type为:其他时,是一闪一闪的效果。

    文/Li_Cheng(简书作者)
    原文链接:http://www.jianshu.com/p/2104865e7dba

    追寻最真
  • 相关阅读:
    盒子模型
    css基本选择器
    css样式写法<link和style>
    将博客搬至CSDN
    Mac AndroidStudio 快捷键整理搜藏
    Android 图片黑白显示 自定义饱和度
    android studio 将包含jar包的项目打包成jar包
    JNI方法命名和方法签名
    Mac 下配置NDK/JNI开发环境,并运行简单demo
    Installation failed with message Failed to establish session报错
  • 原文地址:https://www.cnblogs.com/zhao-jie-li/p/5543031.html
Copyright © 2020-2023  润新知