繁体   English   中英

在NSTimer上重新加载TableView部分

[英]Reloading the TableView Section on NSTimer

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

请帮助我:)在此先感谢

之所以不能按下该按钮,是因为您不断地重新加载tableView,因此在按下该按钮时会对其进行初始化。

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

解决方案A:只需在单元格中更新标签,而不是在表视图上调用reloadData。

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

退后一步,考虑一下您要在这里做什么:

您有一个带有一个单元格的UITableView,应该以20 Hz更新。

二十。 赫兹。

当您reloadSections:withRowAnimation:时会发生什么reloadSections:withRowAnimation:

  1. TableView向其数据源询问该部分中的行数。
  2. TableView必须询问其委托人是否实现tableView:heightForRowAtIndexPath: -如果这样做,则需要调用该方法。
  3. TableView向其数据源询问一个单元格,然后该单元格将尝试使其中一个单元出队(即是否存在重用标识符...)并配置该单元格。
  4. 然后,TableView将采用此单元格并将其插入视图层次结构中,删除旧的单元格,然后将其子视图称为layout。

二十。 惊人的。 时报。 一秒。

不要那样做!

相反,仅在确实需要时执行更改。 否则,您会耗尽电池电量,UI会变得迟钝,因为刚刚造成的所有负载都会阻塞事件循环。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM