【问题标题】:Drawing selected state on custom UITableViewCell在自定义 UITableViewCell 上绘制选定状态
【发布时间】:2010-04-10 12:47:02
【问题描述】:

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

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

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

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

有什么想法吗?谢谢。

【问题讨论】:

    标签: iphone uikit uitableview drawrect


    【解决方案1】:

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

    【讨论】:

    • 我之前试过用这个,但它只是为了在其他CALayers后面绘制一个渐变。不敢相信我忘记了这件事。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多