之前一个项目在做手机注册登录时,有一个特殊的需求,就是发送验证码,按钮进入倒计时后,退出页面(pop),重新进入还在计时,当时用了几种方法实现,最终使用多线程来实现的,现在写这篇文章来记录一下相关扩展的类似此类倒计时的功能。
- 对于倒计时,我这里分两种,一种是、固定时间的、短时间的倒计时,比如按钮发送验证码(固定倒计时1分钟),或者某些功能需要的固定3、5分钟的倒计时,或者是支付半小时等待的倒计时。另一种是截止到某日的、长时间的倒计时,如活动时间一般好几天,截止到某天为止。
固定、短时间的
- 使用多线程NSOperation,将每个倒计时放入一条线程中,可实现页面退出,重新进入继续计时,可以默认最多支持3条子线程同时工作,如果想修改,可以直接去队列OperationQueue中修改
截止到某个时间点、长时间的
- 这类就简单很多了,由于最终的截止日期是定死的,可以直接使用GCD计时器,每秒都刷新显示一下显示计时器的View,显示的时间是当前时间和截止时间的差
代码地址
https://github.com/WallaceYou/CountDown
如果觉得有帮助到您,给颗星鼓励一下哦😊