在NSTimer上重新加载TableView部分

时间:2012-04-03 08:50:30

标签: iphone ios uitableview nstimer

我正在重新加载NSTimer的特定tableview部分,我在0.05秒内安排了这部分。我在该部分单元格中有一个按钮但是一旦计时器启动,我就无法获得按钮点击事件。

请帮助我:) 在此先感谢

2 个答案:

答案 0 :(得分:1)

您无法按下按钮的原因是因为您不断重新加载tableView,因此在按下按钮时按钮会重新初始化。

有两个解决方案(一个对你更好,但没有看到你的代码,我无法分辨哪个)。

解决方案A:不要在tableview上调用reloadData,而只更新单元格中的标签。

解决方案B:重用UITableViewCells并仅在需要时初始化按钮,而不是在每个reloadData上初始化。

答案 1 :(得分:0)

退后一步,想想你在这里要做的事情:

你有一个UITableView,其中有一个单元格,应该以20 Hz的频率更新。

二十。赫兹。

reloadSections:withRowAnimation:

时会发生什么
  1. TableView向其数据源询问该部分中的行数。
  2. TableView必须询问其委托是否实现tableView:heightForRowAtIndexPath: - 如果是,则需要调用该方法。
  3. TableView向其数据源询问一个单元格,然后该单元格将尝试将一个单元格出列(如果存在重用标识符...)并配置该单元格。
  4. 然后,TableView将获取此单元格并将其插入视图层次结构中,删除旧单元格,然后将布局调用其子视图。
  5. 二十。惊人的。时报。 A.第二。

    不要那样做!

    相反,只有在必要时才执行更改。否则你就会把电池耗尽,而你的用户界面会很迟钝,因为你所造成的所有负载都会阻塞事件循环。

相关问题