Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.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
Iphone 在NSTimer上重新加载TableView部分_Iphone_Ios_Uitableview_Nstimer - Fatal编程技术网

Iphone 在NSTimer上重新加载TableView部分

Iphone 在NSTimer上重新加载TableView部分,iphone,ios,uitableview,nstimer,Iphone,Ios,Uitableview,Nstimer,我正在NSTimer上重新加载我计划在0.05秒时加载的特定tableview部分。我有一个按钮在该部分单元格,但一旦计时器启动,我无法得到按钮点击事件 请帮帮我:) 提前感谢您无法按下按钮的原因是您不断地重新加载tableView,因此在按下按钮时会重新初始化该按钮 有两种解决方案(一种更适合您,但在没有看到您的代码的情况下,我无法判断是哪一种) 解决方案A:不在tableview上调用重载数据,只更新单元格中的标签 解决方案B:重复使用UITableViewCells,只在需要时初始化按钮,

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

请帮帮我:)
提前感谢

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

有两种解决方案(一种更适合您,但在没有看到您的代码的情况下,我无法判断是哪一种)

解决方案A:不在tableview上调用重载数据,只更新单元格中的标签


解决方案B:重复使用UITableViewCells,只在需要时初始化按钮,而不是每次重新加载数据时都初始化按钮。

请后退一步,思考一下您在这里尝试执行的操作:

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

二十。赫兹

重新加载Sections:withRowAnimation:

  • TableView向其数据源询问该节中的行数
  • TableView必须询问其委托是否实现了
    TableView:heightForRowAtIndexPath:
    ——如果实现了,则需要调用该方法
  • TableView向其数据源请求一个单元,然后该单元将尝试将一个单元出列(如果有重用标识符…),并配置该单元
  • 然后,TableView将获取此单元格并将其插入视图层次结构中,删除旧的单元格,然后将layout调用其子视图
  • 二十。震耳欲聋。时代。A.第二

    不要那样做


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

    请附上你的示例代码。如果电池数量没有改变,你可以只更新可见的电池。它会更快。tableview内容实际更改的频率是多少?仅仅在内容改变时重新加载不是更好吗?@NeverBe是的,在我的情况下,单元格数没有改变&我在每个部分都有一个单元格,所以我更愿意重新加载部分。你能发布你的代码吗。。。??它在我的案子里起作用了