iOS Swift 秒杀倒计时(日时分秒倒计时)

秒杀倒计时是电商项目常用的功能,最近项目里用到,总结一下。

效果图(gif播放速度有点问题,实际没这么快)

这个效果核心就是Timer的使用以及通过秒数计算出时间字符串

Timer

关于Timer使用和优化看这里,就不再赘述了。
Swift Timer的销毁问题以及优化

秒数转字符串

/// 秒数转化为时间字符串
    func secondsToTimeString(seconds: Int) -> String {
        //天数计算
        let days = (seconds)/(24*3600);
        
        //小时计算
        let hours = (seconds)%(24*3600)/3600;
        
        //分钟计算
        let minutes = (seconds)%3600/60;
        
        //秒计算
        let second = (seconds)%60;
        
        let timeString  = String(format: "%lu天 %02lu:%02lu:%02lu", days, hours, minutes, second)
        return timeString
    }

我为了使用方便,抽出了一个ZJKillTimer类,不用关心Timer的使用不当的问题,一行代码就可以直接完成秒杀倒计时功能,页面退出时Timer也会自动被释放。

        //seconds根据实际计算(活动结束时间减去当前时间得出的秒数)
        killTimer = ZJKillTimer(seconds: 43200, callBack: {[weak self] (text) in
            self?.labelText.text = text
        })

回调里面的text就是所需要的字符串了

Demo地址

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,801评论 1 32
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,205评论 4 61
  • 主角陈南配角陈龙众配角 简介 主角陈南是普通的学生直到有一天,被一个叫攻略病娇系统的系统绑定本来不想答应的,但是听...
    陌上轻舞阅读 10,402评论 1 1
  • 一大早上来儿子来到房间,喊着起床,陪儿子听英语、早餐,带他逛家乐福玩游戏,吃完饭回宜昌,每次回来都感觉儿子变化,也...
    董银超阅读 1,053评论 0 1
  • 夜倍辽凉,月静无思望。潇潇几何堪众生, 灵欲仙家经玉路,心记百林回。
    十一月_bae3阅读 832评论 0 2