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就是所需要的字符串了