如何绘制UITableViewCell的contentView?

时间:2009-09-28 03:04:18

标签: iphone core-graphics

我正在尝试在自定义UITableViewCell上绘制一条线。当我在被覆盖的drawRect中绘制并使用当前图形上下文时,我什么都看不到。

我知道我看不到任何东西,因为draw rect是绘制到UIView而不是contentView。所以我的问题是,如何使用CG绘制内容视图?说,抓住图形上下文到contentView?

3 个答案:

答案 0 :(得分:4)

我在过去玩过这个,我最终做的是创建我自己的UIView子类,并将iot添加到UITableViewCell的自定义子类并以此方式绘制。我喜欢这给了我的控制。

答案 1 :(得分:0)

出于某种原因(我不知道为什么,但我确实注意到了这一点)如果你在你的单元格的'contentView'中“自定义绘制”(即重新定义drawRect),它就不会出现在表格单元格。但是,您分配给cell.backgroundView和cell.selectedBackgroundView的视图显示得非常好......

你可以把你的自定义视图放在cell.backgroundView中,什么也不放在cell.contentView中它会显示正常(除非你选择行,因为那时你的视图消失了,并被cell.selectedBackgroundView取代)。 / p>

所以,你能做的是:

  • 使用cell.contentView显示没有任何背景的自定义视图
  • 使用cell.backgroundView和cell.selectedBackgroundView显示您单元格的精美背景......

或者:

  • 使您的自定义视图足够灵活,以便它可以显示所选和未选择的状态,并使用自定义视图的2个实例:一个在cell.backgroundView中,一个在cell.selectedBackgroundView中

答案 2 :(得分:-1)

我找到了答案here。基本上,超类ABTabeViewCell设置了上下文,因此您可以轻松地在drawContentView函数中绘制。