我的要求是:如果用户单击某个部分中的任何行,则需要突出显示该部分中的所有行(更改背景颜色) . 我有一个自定义tableviewcell .
我试图在自定义tableviewcell中使用setSelected,但是一旦滚动,单元格就会被重置(显然) .
所以,为了解决这个问题,在我的 - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath,我试图用[tableView indexPathForSelectedRow] .section来检索该节,然后我循环通过它来选择细胞 .
问题最终是每当你滚动时,你可以注意到细胞被选中,这使得它看起来很麻烦 .
有什么建议?
1 回答
确保您的应用程序不依赖于表格单元格来记住其选择状态 - 您的应用程序应该跟踪在视图之外的其他位置选择的内容 .
每次表需要显示一个新单元格时,就会调用表数据源的
-tableView:cellForRowAtIndexPath:
方法,也就是说,您正好有机会正确配置单元格 . 它应该检查表的数据,确定是否应该选择单元格,并适当地设置所选状态 .