0

我有一个客户UITableViewCell,他的整个显示器都画在drawRect. 当它绘制时,它会创建CGLayers,以便在更改某些内容时可以重用某些部分。

我已将其更改UITableViewCellSelectionStyle为“无”,因为我不希望默认选择的视图覆盖我的绘图。

我的问题是我调用setNeedsDisplaysetSelected:animated:我的单元格,但是到了drawRect被调用的时候,setSelected:animated:已经再次调用以取消选择该单元格。在我的表视图控制器didSelectRowAtIndexPath中,我deselectRowAtIndexPath按照 Apple 的建议进行调用。

编辑 - 我也尝试从我的表格视图控制器中调用我的单元格上的 setNeedsDisplay ,(NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath但这并没有改变任何东西。

有任何想法吗?谢谢。

4

1 回答 1

5

使用表格单元格的selectedBackgroundView属性。如果您为其分配自定义视图,它将与默认选择背景同时显示和隐藏 - 换句话说,无需等待setNeedsDisplay调用drawRect:单元格本身。

于 2010-04-12T12:05:02.377 回答