在UITableViewCell中制作实时倒数计时器的正确方法?

时间:2015-08-12 12:29:06

标签: ios swift uitableview tableviewcell

我正在尝试开发一个时间表应用。我有TableViewController,它显示当天的类。如何通过倒数计时器实现单元格 - 显示当前类?

我尝试使用NSTimer每秒调用tableView.reloadData(),但我认为这不是一个好方法,而且我的CPU使用率连续2-3%。

This屏幕截图显示了我的想象。 (生物课应该有一个计时器,第三个细胞)

3 个答案:

答案 0 :(得分:2)

不要重新加载整个表格。计时器和控件的更新应该在表视图单元子类中进行,而不是在包含控制器内。

但是,当您的手机收到- (void)prepareForReuse消息时,请不要忘记关闭计时器,否则您会遇到问题。

答案 1 :(得分:-1)

我认为创建计时器的最佳方法是:

  • 计时器启动时,计算完成的时间。例如。计时器应该运行一个小时,现在它是8:28所以它将在9:28完成。节省完成时间
  • 每次更新显示屏时,请计算现在和保存时间之间的剩余时间,并使用它更新标签。像这样你可以同时更新每个标签

答案 2 :(得分:-1)

  1. 将UILabel添加到您的手机
  2. 获得课程的时间,例如60分钟
  3. 启动NSTimer每隔一秒钟或每分钟调用一次,然后运行它。
  4. 启动标签,其编号最高为60:00的总时间。
  5. 如果定时器每隔60秒运行一次定时器,则调用定时器获取mins字段 - 一个(你可以将字符串转换为2个NSNumber类型的对象以便能够使用)。
  6. 并且每次min字段获取时 - 用59开始第二个字段。
  7. 每次调用计时器时都会获得第二个字段 - 一个
  8. 确保您的字段在标签正确完成时为零。
  9. 每次都可以使用reloadData或reloadCell

    希望这个答案可以帮助你好运