首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在UITableViewCell中做一个实时倒计时的正确方法?

在UITableViewCell中做一个实时倒计时的正确方法?
EN

Stack Overflow用户
提问于 2015-08-12 12:29:06
回答 3查看 1.6K关注 0票数 1

我正在开发一个时间表应用程序。我有TableViewController,它显示了今天的课程。如何使用倒计时器实现单元格(显示当前类)?

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

截图展示了我是如何想象的。(生物课应该有计时器,第三单元)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-08-12 12:34:18

别把整张桌子重新装上。计时器和控件的更新应该发生在表视图单元格子类中,而不是在包含控制器中。

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

票数 2
EN

Stack Overflow用户

发布于 2015-08-12 12:33:25

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

  • 当计时器启动时,计算它将完成的时间。计时器应该运行一个小时,现在是8:28,所以它将在9:28完成。节省整理时间
  • 每次更新显示时,计算从现在到节省的时间之间的剩余时间,并使用它更新您的标签。就像这样,你可以同时更新每个标签。
票数 -1
EN

Stack Overflow用户

发布于 2015-08-12 12:38:57

  1. 将UILabel添加到单元格中
  2. 获取这个类的长度,例如60分钟
  3. 启动NSTimer,每秒钟或每分钟调用一次,然后运行它。
  4. 使用类的总时间60:00的最高数字开始标签。
  5. 如果计时器每隔60次工作一次,计时器就会被调用一次,得到mins字段(您可以将字符串转换为NSNumber类型的2个对象,以便能够使用)。
  6. 每次分钟场得到-1开始第二个字段从59开始。
  7. 每次计时器被调用,就得到第二个字段-1
  8. 确保在字段到达零时有条件,标签正确完成。

您可以每次使用reloadData或reloadCell

希望这个答案能帮助你好运。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31965265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档