• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - Objective c中小时格式的倒数计时器

[复制链接]
菜鸟教程小白 发表于 2022-12-11 19:26:26 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我在我的 View Controller 中设置了一个计时器,当我给它任何静态数字时它工作正常。现在我想设置一个一小时的计时器,它以一秒递减并在达到零时失效。我已经写了一些代码,

countInt=10;
self.lblTimer.text=[NSString stringWithFormat"%i",countInt];
timer=[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selectorselector(startCounter) userInfo:nil repeats:YES];
-(void)startCounter{
countInt -=1;
self.lblTimer.text=[NSString stringWithFormat"%i",countInt];

if (countInt==0) {
    [timer invalidate];
}
}



Best Answer-推荐答案


试试这个:

import UIKit

class ViewController: UIViewController{

    @IBOutlet weak var timerLbl: UILabel!

    var timer = Timer()

    @IBAction func pausePressed(_ sender: Any) {
        timer.invalidate()
    }

    @IBAction func playPressed(_ sender: Any) {
        if timer.isValid {
            timer.invalidate()
        }
        timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(reduceSeconds), userInfo: nil, repeats: true)
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        timerLbl.text = "180"
        timerLbl.font = UIFont.boldSystemFont(ofSize: 32)
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
       }

    func reduceSeconds() -> Void {
        timerLbl.text = String(Int(timerLbl.text!)! - 1)
    }
}

这将按 180 秒运行,计数器将减少 1(根据需要),您可以将其重置或设置为您喜欢的方式。

注意:

pausePressed 是一个导航栏图标和对它的操作

playPressed 也是一个导航栏图标和对它的操作

关于ios - Objective c中小时格式的倒数计时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47766344/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap