使用ReactiveCocoa 实现简单的验证码按钮
来源:互联网 发布:ubuntu版本的区别 编辑:程序博客网 时间:2024/06/16 02:17
1 创建按钮
UIButton *yzmButton = [UIButton buttonWithType:UIButtonTypeCustom]; yzmButton.backgroundColor = [UIColor orangeColor]; yzmButton.titleLabel.font = [UIFont systemFontOfSize:13]; [yzmButton setTitle:@"获取验证码" forState:UIControlStateNormal]; [yzmButton addTarget:self action:@selector(startTime:) forControlEvents:UIControlEventTouchUpInside]; [self addSubview:yzmButton]; [yzmButton mas_makeConstraints:^(MASConstraintMaker *make) { make.top.mas_equalTo(weakSelf.lastLabel.mas_bottom).offset(15); make.centerX.mas_equalTo(weakSelf.mas_centerX); make.size.mas_equalTo(CGSizeMake(90, 40)); }];
2 实现点击方法
-(void)startTime:(UIButton *)l_timeButton{ __block int timeout=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(timeout<=0){ //倒计时结束,关闭 dispatch_source_cancel(_timer); dispatch_async(dispatch_get_main_queue(), ^{ //设置界面的按钮显示 根据自己需求设置(倒计时结束后调用) [l_timeButton setTitle:@"发送验证码" forState:UIControlStateNormal]; //设置不可点击 l_timeButton.userInteractionEnabled = YES; l_timeButton.backgroundColor = [UIColor orangeColor]; }); }else{ // int minutes = timeout / 60; //这里注释掉了,这个是用来测试多于60秒时计算分钟的。 int seconds = timeout % 60; NSString *strTime = [NSString stringWithFormat:@"%d", seconds]; dispatch_async(dispatch_get_main_queue(), ^{ //设置界面的按钮显示 根据自己需求设置 NSLog(@"____%@",strTime); [l_timeButton setTitle:[NSString stringWithFormat:@"%@秒后可重新发送",strTime] forState:UIControlStateNormal]; //设置可点击 l_timeButton.userInteractionEnabled = NO; l_timeButton.backgroundColor = [UIColor lightGrayColor]; }); timeout--; } }); dispatch_resume(_timer);}
阅读全文
0 0
- 使用ReactiveCocoa 实现简单的验证码按钮
- iOS ReactiveCocoa的简单使用
- iOS ReactiveCocoa的简单使用
- 使用rxjava2实现验证码重新发送按钮的倒计时
- 使用Kaptcha实现简单的验证码
- 使用servlet 实现简单的验证码
- MVVM + ReactiveCocoa 一些简单功能的实现
- 发送短信验证码按钮的实现
- ReactiveCocoa的简单用法
- 简单的验证码实现
- 简单的验证码实现
- 简单的实现验证码
- 验证码的简单实现
- 简单验证码的实现
- 简单的验证码实现
- XFire使用WSSecurity实现的简单验证
- 使用jQuery实现简单的邮箱验证
- 使用js实现简单的注册验证
- Codeforces 812 A Sagheer and Crossroads
- spring代理的类图
- 【java】--包装类
- tomcat 中部署项目
- Java 常用类
- 使用ReactiveCocoa 实现简单的验证码按钮
- Git命令总结
- C# 几种截取字符串的方法小结
- ArcGIS Engine 通过SOAP方式加载ArcGISServer切片服务看不到地图 问题
- CSS3新增伪类汇总
- Java StringBuffer与StringBuider
- 解析线程池
- 总结常见的ES6新语法特性
- socket服务器