UISwift

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

2019-03-18  本文已影响0人  jzhang

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

效果图(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地址

上一篇下一篇

猜你喜欢

热点阅读