UITableView reloadRows仅在每隔一段时间运行

时间:2018-02-04 04:27:13

标签: ios uitableview

我有一个由数据数组(例如'rowVals []')提供的自定义UITableView('table'),它在数据更改后没有显示正确的值。

错误案例

  1. 初始化表格为5行,其值由'rowVals'= [“R1” - “R5”]

    • post - 正确显示
  2. 将rowVals [1]从“R2”更改为“S2”

    • post - 显示初始值(例如w /“R2”)
  3. 在表格上调用table.reloadRows()

    • post - 显示新值(例如w /“S2”)
  4. (BUG!)在表格上调用table.reloadRows()

    • post - 再次显示init值! (例如w /“R2”)
  5. 步骤#3 /#4现在反复循环!

  6. 问题

    为什么会发生这种情况,表中显示“R2”的位置在哪里?我花了两个多小时调试这个无济于事,哎呀!想法?

1 个答案:

答案 0 :(得分:0)

感谢Paulw11的建议,通过调试和持久性,我能够解决并纠正这个问题。

问题来源

  • 自定义单元格,在vc
  • 中的viewDidLoad()上初始化

问题解决方案

  • tableView(cellForRowAtIndexPath)直接返回单元格,而不是dequeueReusableCell()

我不确定为什么这会纠正问题,但它确实有些意义,dequeueReusableCell()会在找不到'标识符'时返回一个新单元格!