如何优雅的实现 电商类促销倒计时(1天:12:时33:分)

最近公司电商app要搞一波 促销大放送,要我们在某些商品上面放置促销倒计时,我们都知道商品首页展示着不同的商品(cell), 并不是每个cell上面所有定时器倒计时如图:

如何优雅的实现 电商类促销倒计时(1天:12:时33:分)_第1张图片

遇到需求莫慌,仔细分析,首先要做的是先把界面展示出来,定时器之后加上,一步一步来,cell的展示大家都轻车熟路了我就不逼逼了,下面要做的就是怎么放置一个促销倒计时了,蛋疼的我并没有着急自己定义定时器,而是去GitHub上面各种撸代码,终于找到一个定时器让我眼前一亮,附上传送阵 cell上放置定时器实现促销倒计时
其他我就不多说了,主要思想就是打开定时器的同时定义一个int变量,没秒加1,这样的话,我们赋值的时候只需要拿到促销结束时间减去这个int变量就是每个时刻需要展示的倒计时,附上代码

- (void)countDownNotification {

    /// 这个就是这个定时器开始的时候定义的变量
    NSInteger timeInterval = kCountDownManager.timeInterval;
    self.countDown2 = self.second - timeInterval
        if (self.countDown2 < 0) return;
        /// 重新赋值
        //NSLog(@"timeInterval forTwenty  === %zd",timeInterval);
        
        self.houL.text = [NSString stringWithFormat:@"%02zd", self.countDown2/3600];
        self.minL.text = [NSString stringWithFormat:@"%02zd",(self.countDown2/60)%60];
        self.secL.text = [NSString stringWithFormat:@"%02zd",self.countDown2%60];
  

这样就能在界面上给每个label赋值了-小时:分钟:秒数,这一切搞定后高兴地滑动列表,呵呵了,

当第一个带定时器的cell滑动离开手机屏幕的后,再回退,发现定时器不见了,坐下想了一下发现原来是老生常谈的问题--cell的重用问题,因为带定时器的cell复用的时候回用到没有定时器的cell,后果可想而知,不过我早有对策,传送阵走起来如何优雅的解决cell重用问题,完美解决,与君共勉.

教你快速上手--NSTimer

你可能感兴趣的:(如何优雅的实现 电商类促销倒计时(1天:12:时33:分))