我使用的UITableView
有自定义UItableViewCell
。这个自定义单元格有一个子视图(一个UIView子类)。我使用自定义UIView子类的drawRect
来放置单元格要显示的所有文本。
在drawRect
(UIView
子类)中,我执行以下操作
/*
// This piece of code is called when setNeedsDisplay is called
*/
- (void)drawRect:(CGRect)rect
{
self.layer.cornerRadius = 10.0f;
self.layer.backgroundColor = [[UIColor orangeColor] CGColor];
self.layer.borderColor = [[UIColor lightGrayColor] CGColor];
self.layer.borderWidth = 3.0f;
}
然而,我的自定义单元格是像这样的黑色方块
但是如果我选择行,我确实看到了预期的行为。如下所示
怎么回事?
答案 0 :(得分:3)
您的drawRect:
方法没有绘制任何内容;您放在那里的代码属于initWithFrame:
实施。
您应该在初始化程序中操作图层配置;在drawRect:
中,您应根据视图状态调用CGContextRef
的函数。例如,要绘制一些文本,您可以使用CGContextShowTextAtPoint
来绘制一些您将使用CGContextAddLineToPoint
的行,依此类推。
有关drawRect:
与CALayer
的{{1}}之间关系的信息,请参阅this question。
答案 1 :(得分:0)
尝试使用
禁用单元格的选择突出显示[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
答案 2 :(得分:0)
尝试在self.layer.masksToBounds = YES
(self.opaque = NO
被覆盖的)初始化期间设置UIView
和(可能)drawRect
。 (见this question)
答案 3 :(得分:0)
你犯了一个错误:
请转到UItableViewCell旁边的视图,检查它可能是黑色或其他颜色的背景颜色,重置它以清除颜色然后检查结果,