Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在UITableViewCell中创建实时倒计时计时器的正确方法?_Ios_Swift_Uitableview_Tableviewcell - Fatal编程技术网

Ios 在UITableViewCell中创建实时倒计时计时器的正确方法?

Ios 在UITableViewCell中创建实时倒计时计时器的正确方法?,ios,swift,uitableview,tableviewcell,Ios,Swift,Uitableview,Tableviewcell,我正在尝试开发一个时间表应用程序。我有TableViewController,它显示了当天的课程。如何使用倒计时实现显示当前类的单元格 我尝试使用每秒调用tableView.reloadData()的NSTimer,但我认为这不是一个好方法,而且我的CPU使用率持续在2-3%之间 截图显示了我的想象。(生物课应该有一个计时器,第三个单元格)我认为创建计时器的最好方法是: 计时器启动时,计算它将完成的时间。计时器应该运行一个小时,现在是8:28,所以应该在9:28完成。节省整理时间 每次更新显示

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

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


截图显示了我的想象。(生物课应该有一个计时器,第三个单元格)

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

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

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

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

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


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

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

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

        • 将UILabel添加到单元格中
        • 获取课程时间,例如60分钟
        • 启动NSTimer,根据需要每隔一秒或每分钟调用一次,然后运行它
        • 以班级总时间60:00的最大数字开始标签
        • 如果计时器以秒为单位工作,并且每60次调用一次计时器,则按-1获取mins字段(您可以将字符串转换为NSNumber类型的2个对象,以便能够使用)
        • 每次min字段得到-1,第二个字段就开始59
        • 每次调用计时器时,获取第二个字段-1
        • 确保字段为零时有条件,标签正确完成
        • 您可以每次重新加载数据或重新加载单元格

          希望这个答案能帮你好运

        • 将UILabel添加到单元格中
        • 获取课程时间,例如60分钟
        • 启动NSTimer,根据需要每隔一秒或每分钟调用一次,然后运行它
        • 以班级总时间60:00的最大数字开始标签
        • 如果计时器以秒为单位工作,并且每60次调用一次计时器,则按-1获取mins字段(您可以将字符串转换为NSNumber类型的2个对象,以便能够使用)
        • 每次min字段得到-1,第二个字段就开始59
        • 每次调用计时器时,获取第二个字段-1
        • 确保字段为零时有条件,标签正确完成
        • 您可以每次重新加载数据或重新加载单元格


          希望这个答案能帮你好运

          谢谢你的回答。这很有帮助。这个ViewController还有一个问题。您介意核对一下问题吗?谢谢您的回答。这很有帮助。这个ViewController还有一个问题。你介意核对一下问题吗?