在自定义UITableViewCell上绘制选定状态

时间:2010-04-10 12:47:02

标签: iphone uikit uitableview drawrect

我有一个客户UITableViewCell,其整个展示位于drawRect。在绘制时,它会创建CGLayers,以便在更改某些内容时可以重复使用某些部分。

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

我的问题是我在setNeedsDisplay为我的手机拨打了setSelected:animated:但是在调用drawRect时,已经再次调用setSelected:animated:来取消选择该手机。在我的表视图控制器didSelectRowAtIndexPath中,我打电话给deselectRowAtIndexPath,正如Apple建议的那样。

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

有什么想法吗?感谢。

1 个答案:

答案 0 :(得分:5)

使用表格单元格的selectedBackgroundView属性。如果您为其指定自定义视图,它将与默认选择背景同时显示和隐藏 - 换句话说,无需等待setNeedsDisplay绕过调用{{1}在细胞本身上。