登录 立即注册
金钱:

Code4App-iOS开发-iOS 开源代码库-iOS代码实例搜索-iOS特效示例-iOS代码例子下载-Code4App.com

快速实现一个倒计时按钮

[复制链接]
来自: 李兆祥 分类: iOS精品源码 上传时间: 2019-5-23 09:39:16
Tag:

项目介绍:

项目介绍:
iOS开发中在登录、注册、找回密码等页面经常需要实现倒计时按钮,但是很多情况下用户点击倒计时按钮开始倒计时之后,再次进入页面,又可以再次点击,倒计时记录不会保留,虽然一般情况下服务端会再次校验,但是我们可以实现得更加严谨。
ZXCountDownView 支持自动保存倒计时记录,即使退出当前控制器,重启App,倒计时仍然保留,支持多个不同控制器共用一个倒计时记录,例如登录、注册、找回密码页面共用一个倒计时记录,点击任意一个按钮倒计时记录将实时同步。

ZXCountDownView
安装通过CocoaPods
安装pod 'ZXCountDownView'手动导入将ZXCountDownView拖入项目中。
导入头文件#import "ZXCountDownView.h"

Demo
  • 设置一个倒计时Label,且自动记录倒计时进度:

  1. //第一个参数40即为倒计时时间为40秒,第二个参数mark用于标记区分当前倒计时任务和其他倒计时任务,确保与其他任务不重名即可,block第一个参数即为剩余秒数,block返回值即为显示在Label上的文字。(此处实现了一个倒计时40秒,且显示”还剩40、39、38...秒哦“的Label)[self.scheduleStoreLabel setCountDown:40 mark:@"ScheduleStoreLabel" resTextFormat:^NSString *(long remainSec) {    if(remainSec > 30){        weakSelf.scheduleStoreLabel.backgroundColor = [UIColor orangeColor];    }else{        weakSelf.scheduleStoreLabel.backgroundColor = [UIColor redColor];    }    //显示剩余几分几秒    NSString *timeformatStr = [NSDate getDateStrWithSec:remainSec dateFormat:@"mm分ss秒"];    return timeformatStr;}];//开始倒计时[self.scheduleStoreLabel startCountDown];
复制代码
  • 设置一个点击获取验证码的Button,且自动记录倒计时进度:

  1. //此处实现了一个倒计时20秒,且显示“还剩20、19、18...秒后重试”的Btn,且退出重新进入当前控制器或重启App不受影响。[self.getCheckCodeBtn enableAutoCountDown:20 mark:@"GetCheckCodeBtn" resTextFormat:^NSString *(long remainSec) {    return [NSString stringWithFormat:@"%ld秒后重发",remainSec];}];#pragma mark 点击了获取验证码按钮- (IBAction)getCheckCodeAction:(id)sender {    //判断如果手机号码不合法,可不触发倒计时    if(0){        self.getCheckCodeBtn.start = NO;        return;    }    NSLog(@"执行获取验证码操作!!");    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{        //判断如果验证码请求失败,可重置倒计时按钮        if(0){            [self.getCheckCodeBtn resume];        }    });}
复制代码
  • 您也可以不依赖UI控件,直接开启一个倒计时任务

  1. ZXCountDownCore *countDownCore = [[ZXCountDownCore alloc]init];[countDownCore setCountDown:10 mark:@"testCountDown" resBlock:^(long remainSec) {    //每秒执行一次    NSLog(@"remainSec--%ld",remainSec);}];//开始倒计时[countDownCore startCountDown];
复制代码
  • 启用或禁用自动存储倒计时进度:

  1. //disableScheduleStore 是否不存储倒计时进度,默认为NO,即默认存储倒计时进度obj.disableScheduleStore = YES;obj.disableScheduleStore = NO;
复制代码
  • 倒计时控制:

  1. //开始倒计时-(void)startCountDown;//重新开始倒计时-(void)reStartCountDown;//结束倒计时-(void)stopCountDown;
复制代码
  • 若需要实现多个不同的倒计时view共用进度,例如登录获取验证码按钮,注册获取验证码按钮,找回密码获取验证码按钮,只需设置相同mark即可。


github地址 ZXCountDownView




相关源码推荐:

我来说两句
*滑动验证:
所有评论(5)
天天bug 2019-5-23 10:02:12
内容很好,棒棒哒
回复
inta加加 2019-5-23 10:02:40
感谢分享,楼主V5~
回复
编程是什么 2019-5-23 10:02:41
写的真的很不错
回复
ff12345 2019-5-23 10:03:04
学习...学习...
回复
Ek645 2019-5-23 10:03:25
虽不明,但觉厉...
回复
Yf8546 2019-5-23 10:03:33
感谢分享,楼主V5~
回复
code4app热心网友 2019-5-23 10:50:25
学习学习!
回复
十二级风骚 2019-5-23 10:51:09
感谢分享,Code4App有你更精彩:)
回复
十二级风骚 2019-5-23 11:05:02
感谢分享,Code4App有你更精彩:)
回复
提取码:  下载次数:16 状态:已购或VIP 售价:0(原价:15)金钱 下载权限:初级码农 
258 1 16
联系我们
首页/微信公众账号投稿

帖子代码编辑/版权问题

QQ:435399051,742864542

如何获得代码达人称号?

代码贡献英雄榜
用户名 下载数
通过邮件订阅最新 Code4App 信息
上一条 /4 下一条
联系我们
关闭
合作电话:
13802416937
Email:
435399051@qq.com
商务市场合作/投稿
问题反馈及帮助
联系我们

广告投放| 广东互联网违法和不良信息举报中心|中国互联网举报中心|Github|申请友链|手机版|Code4App ( 粤ICP备15117877号-1 )

快速回复 返回顶部 返回列表