通过表视图单元格迭代?

时间:2016-07-17 00:06:47

标签: ios swift uitableview

我知道有很多这样的问题,但是我已经尝试了他们的解决方案并且没有任何工作,所以请听我说。

我有一个名为MainTableViewController的视图控制器,以及一个名为MainTableViewCell的表视图单元格类型。我正在使用一个开关,当打开时,我想要显示单元格的标签。我知道如何设置开关,功能以及如何切换标签。我不理解的唯一部分是循环遍历所有细胞。

我试过:在主“tableview”函数中,将每个单元格添加到一个数组中(由于某种原因它们不会留在数组中),并循环遍历每个MainTableView.visibleCells(),但似乎没有工作。有什么建议?

3 个答案:

答案 0 :(得分:2)

你不需要迭代任何东西。只需在开关更改时重新加载表格视图。然后确保atoi("")的实现为交换机的当前状态适当地设置每个单元。

答案 1 :(得分:0)

创建一个可变数组来表示每个单元格中每个标签的状态。它不应该提到细胞本身。每当交换机状态发生变化时,更新数组,然后向表视图发送reloadRowsAtIndexPaths:withRowAnimation:您可以循环遍历整个阵列或使用一些只更新受影响单元的逻辑。

在您的cellForRowAtIndexPath方法中,相应地更改标签的状态。

答案 2 :(得分:0)

如果要在switch语句的切换中使UILabel消失,则必须重新加载单元格。

tableView.reloadData()

如果单元格中当前显示的数据全部是静态的,并通过开关手动输入不同的单元格indexPath.rows,那么您不使用表格视图的主委托方法cellForRowAtIndexPath:。

您必须将此委托方法中的开关放在indexPath.row上,因为当新单元格从底部出现时会重复调用此方法,然后当它们从顶部离开时会被重新调用以重新使用和重建使用相同的委托方法。

将开关置于cellForRowAtIndexPath: