突出显示特定tableview部分中的所有单元格

时间:2011-06-15 19:32:04

标签: iphone uitableview

我的要求是:如果用户单击某个部分中的任何行,则需要突出显示该部分中的所有行(更改背景颜色)。我有一个自定义的tableviewcell。

我试图在自定义tableviewcell中使用setSelected,但是一旦滚动,单元格就会被重置(显然)。

所以,为了解决这个问题,在我的 - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath,我试图用[tableView indexPathForSelectedRow] .section来检索该部分,然后我循环通过它来选择细胞。

问题最终导致每次滚动时,您都会注意到选中的单元格会使它看起来很麻烦。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

确保您的应用不依赖于表格单元格来记住他们的选择状态 - 您的应用应该跟踪在视图之外的其他地方选择的内容。

每次表需要显示一个新单元格(即之前不可见的单元格)时,都会调用表数据源的-tableView:cellForRowAtIndexPath:方法。这是你正确配置细胞的机会。它应该检查表的数据,确定是否应该选择单元格,并适当地设置所选状态。