Swift中使用Countdown Label(非NSTimer)实现倒计时结束触发动作
解决CountdownLabel倒计时结束触发动作的问题
嘿,我刚好用过这个CountdownLabel库,帮你搞定这个问题~这个库本身就封装了倒计时结束的回调机制,完全不用自己去折腾NSTimer,下面给你两种实用的实现方式:
方法一:用完成回调Block
这是最直接省心的方式,你在配置CountdownLabel的时候,直接给它的countdownFinishedBlock属性赋值就行,倒计时结束时这个Block会自动触发:
// 假设你已经初始化并配置好countdownLabel countdownLabel.countdownFinishedBlock = { [weak self] in // 这里写你要执行的动作,比如弹窗提示、发送本地通知 print("倒计时结束啦!") self?.triggerTargetAction() }
方法二:用代理协议
如果你习惯用代理模式来处理回调,也可以遵循库的代理协议来实现:
- 先让你的视图控制器遵循
CountdownLabelDelegate协议:
class YourViewController: UIViewController, CountdownLabelDelegate { // 你的其他代码... }
- 给countdownLabel设置代理:
countdownLabel.delegate = self
- 实现代理方法,倒计时结束时会自动调用这个方法:
func countdownLabelDidFinishCountdown(_ countdownLabel: CountdownLabel) { // 在这里执行你的目标动作 print("代理回调:倒计时完成!") self.sendFinishNotification() }
小提示
- 记得提前导入CountdownLabel框架(Swift里就是
import CountdownLabel) - 用Block的时候,记得加
[weak self]避免循环引用哦
内容的提问来源于stack exchange,提问作者nc14
相关产品推荐
相关产品推荐

