我有一个客户UITableViewCell
,其整个展示位于drawRect
。在绘制时,它会创建CGLayers
,以便在更改某些内容时可以重复使用某些部分。
我已将UITableViewCellSelectionStyle
更改为“无”,因为我不希望默认的选定视图覆盖我的绘图。
我的问题是我在setNeedsDisplay
为我的手机拨打了setSelected:animated:
但是在调用drawRect
时,已经再次调用setSelected:animated:
来取消选择该手机。在我的表视图控制器didSelectRowAtIndexPath
中,我打电话给deselectRowAtIndexPath
,正如Apple建议的那样。
编辑 - 我也试过从我的表视图控制器的(NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath
调用我的单元格上的setNeedsDisplay,但这并没有改变任何东西。
有什么想法吗?感谢。
答案 0 :(得分:5)
使用表格单元格的selectedBackgroundView
属性。如果您为其指定自定义视图,它将与默认选择背景同时显示和隐藏 - 换句话说,无需等待setNeedsDisplay
绕过调用{{1}在细胞本身上。