iOS短信验证码倒计时Button的实现

注:本人第一次在简书上发表文章,共勉



Update 12-20 2016

运行中,会一直走,但是真机推到后台不会变,如果需要实现同时,Google到一个(已测试):

如果有好的方法也可以留言告诉我,不胜感激...

CFAbsoluteTimestart =CFAbsoluteTimeGetCurrent();

if((start -_time) >1.5&& [strTimeintValue] >1&& [strTimeintValue] <30) {

intnum = (int)ceil(start -_time);

timeout = timeout - num +1;

strTime = [NSStringstringWithFormat:@"%zd", [strTimeintValue] - num];

timeout--;

if(timeout <0) {

return;

}

}

_time=CFAbsoluteTimeGetCurrent();

加在

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

[_btnsetTitle:[NSStringstringWithFormat:@"%@",strTime]forState:UIControlStateNormal];

_btn.backgroundColor= [UIColorgrayColor];

_btn.userInteractionEnabled=NO;

Update  07.15.2016

亲测,退到后台在进入定时器仍然再走,时间对应减少!别再问了,最后提供一个Demo  ps: 亲们,遇到问题多动手,学习新知识,多动手!



1.最终实现的鲜果如下图所示:


2.主要是在Button的Event里面添加下列代码:

    - (IBAction)sendEvent:(id)sender {

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

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

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

_countdownButton.backgroundColor = [UIColor orangeColor];

_countdownButton.userInteractionEnabled = YES;

});

}else{

//            int minutes = timeout / 60;

int seconds = timeout % 59;

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

dispatch_async(dispatch_get_main_queue(), ^{

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

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

[_countdownButton setTitle:[NSString stringWithFormat:@"%@",strTime] forState:UIControlStateNormal];

_countdownButton.backgroundColor = [UIColor grayColor];

_countdownButton.userInteractionEnabled = NO;

});

timeout--;

}

});

dispatch_resume(_timer);

}

(Update  07.15.2016)(Update  07.15.2016)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容