iPhone dev:滚动时修改了UITableView Cells外观

时间:2010-09-22 07:38:24

标签: iphone uitableview uinavigationcontroller

我正在研究iPhone应用程序。 这是一个标签栏应用程序,在一个特定选项卡中包含导航视图控制器。 我在导航视图控制器中有一个表视图。 在这个组合表中,我需要在某些特定项目中添加一些UISwitch。 例如,我有以下几节:

  • 帐户
    • twitter(&)
    • facebook(&)
    • LinkedIn
  • 出版物
    • twitter(*)
    • facebook(*)
    • linkedIn(*)
  • 连接
    • 保持联系(*)

我需要将UISwitch用于带有*但不用于其他用户的UISwitch。 我设法在tableView:cellForRowAtIndexPath方法中使用indexPath上的条件添加UISwitch。 但是......当我滚动视图时... UISwitch被添加到其他一些项目(带有&以上的项目)。

你能帮忙吗?

非常感谢,

吕克

1 个答案:

答案 0 :(得分:1)

几乎可以肯定,您的代码是细胞重用的问题。

当您将单元格出列以重新使用它时,它不会重置为新状态,而是如果之前添加了UISwitch,它仍然具有UISwitch。

因此,无论何时将单元格出列以便重复使用,您都需要假设它可能具有UISwitch子视图,如果在返回单元格之前不想要它,则删除该子视图。