[iOS开发] 发送验证码的倒计时(采用异步请求的方式)
来源:互联网 发布:安卓的重置网络设置 编辑:程序博客网 时间:2024/06/06 03:51
- (void)createwebView{
[backmsgBtn setTitle:@"发送验证码"forState:UIControlStateNormal];
[backmsgBtn setTitleColor:[UIColorcolorWithRGBHex:0x1e98ef]forState:UIControlStateNormal];
backmsgBtn.layer.borderWidth =1;
backmsgBtn.layer.borderColor = [[UIColorcolorWithRGBHex:0x1e98ef]CGColor];
backmsgBtn.layer.cornerRadius =4*kWCWLScale;
backmsgBtn.titleLabel.font = [UIFontsystemFontOfSize:14*kWCWLScale];
[backmsgBtn addTarget:selfaction:@selector(startTime:)forControlEvents:UIControlEventTouchUpInside];
[self.viewaddSubview:backmsgBtn];
}
/**验证码获取*/
- (void)startTime:(UIButton *)backmsgBtn{
__blockint 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(), ^{
//设置界面的按钮显示根据自己需求设置
[backmsgBtn setTitle:@"获取验证码"forState:UIControlStateNormal];
backmsgBtn.userInteractionEnabled =YES;
backmsgBtn.backgroundColor = [UIColorwhiteColor];
[backmsgBtn setTitleColor:[UIColorcolorWithRGBHex:0x1e98ef]forState:UIControlStateNormal];
backmsgBtn.layer.borderColor = [[UIColorcolorWithRGBHex:0x1e98ef]CGColor];
});
}else{
int seconds = timeout %60;
NSString *strTime = [NSStringstringWithFormat:@"%.2d", seconds];
dispatch_async(dispatch_get_main_queue(), ^{
//设置界面的按钮显示、自己需求设置
//NSLog(@"____%@",strTime);
[UIViewbeginAnimations:nilcontext:nil];
[UIViewsetAnimationDuration:0.5];
[backmsgBtn setTitleColor:[UIColorcolorWithRGBHex:0xececec]forState:UIControlStateNormal];
[backmsgBtn setTitle:[NSStringstringWithFormat:@"%@s重新发送",strTime]forState:UIControlStateNormal];
backmsgBtn.backgroundColor = [UIColorwhiteColor];
backmsgBtn.layer.borderWidth =1;
backmsgBtn.layer.borderColor = [[UIColorcolorWithRGBHex:0xececec]CGColor];
[UIViewcommitAnimations];
backmsgBtn.userInteractionEnabled =NO;
});
timeout--;
}
});
dispatch_resume(_timer);
//获取验证码
(下面写你验证码的接口请求体)
//...
//...
//...
//...
//...
}效果如下
- [iOS开发] 发送验证码的倒计时(采用异步请求的方式)
- 安卓开发请求服务器的两种方式GET与POST(另附验证码的倒计时)
- iOS发送验证码倒计时功能的实现
- Android发送验证码的倒计时按钮
- 实现 发送验证码的倒计时功能
- Jquery简单的发送验证码倒计时
- 发送验证码的倒计时。GCD方法
- ios开发,发验证码倒计时按钮的实现
- iOS GCD实现发送验证码倒计时
- iOS发送短信后验证码倒计时
- 异步请求的方式
- struts1 采用json格式发送异步请求,并且获取action处理后的json数据
- struts1 采用json格式发送异步请求,并且获取action处理后的json数据
- struts1 采用json格式发送异步请求,并且获取action处理后的json数据 .
- 验证码倒计时发送
- 发送验证码倒计时
- 发送验证码时设置UIButton的倒计时
- Android 发送验证码倒计时常用的两种办法
- 判断一个字符串是否为另外一个字符串左旋或右旋之后的字符串。
- 热力学的认识
- java集合04--fail fast机制原理以及解决办法
- 基于四元数的简单互补滤波姿态解算
- 存储过程与事务案例
- [iOS开发] 发送验证码的倒计时(采用异步请求的方式)
- 奇怪的javascript变量名"name"
- 关于springMVC 时间的问题
- Redis各个数据类型的使用场景
- 查询数据库中每个表占用空间方法
- Oracle 使用connect by进行级联查询
- C++学习小疑问:类的名称能否和命名空间的名称相同?
- Simple、KMP、BM、Sunday匹配算法-效率测试
- iOS仿微信相册界面翻转过渡动画