2010-04-10 19 views
0

我有一个客户UITableViewCell,其整个显示画在drawRect中。当它绘制它创建CGLayers,以便它可以重用某些部分时,改变了一些东西。在定制的UITableViewCell上绘制选定状态

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

我的问题是,我称之为setNeedsDisplaysetSelected:animated:我的细胞,而是由时间drawRect被调用时,setSelected:animated:已经再次呼吁取消选择的单元格。在我的桌面视图控制器didSelectRowAtIndexPath中,我按照Apple的建议,致电deselectRowAtIndexPath

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

任何想法?谢谢。

回答

5

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

+1

我曾尝试过使用它,但它只是为了在其他CALayers后面绘制渐变的目的。不能相信我忘记了这一点。谢谢。 – Brian 2010-04-14 12:03:41