4

UITableView我正在使用的有一个自定义UItableViewCell. 这个自定义单元格有一个子视图(一个 UIView 子类)。我使用drawRect自定义 UIView 子类的来放置单元格要显示的所有文本。

drawRectUIView子类)中,我执行以下操作

/*
// 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;
}

但是我的自定义单元格是这样的黑色方块

在此处输入图像描述

但如果我选择该行,我确实看到了预期的行为。如下图所示

在此处输入图像描述

这是怎么回事 ?

4

4 回答 4

3

你的drawRect:方法不画任何东西;您放入其中的代码属于您的initWithFrame:实现。

您应该在初始化程序中操作层配置;在你的drawRect:你应该CGContextRef根据视图的状态调用你的函数。例如,绘制一些您将使用的文本,CGContextShowTextAtPoint绘制一些您将使用的线条CGContextAddLineToPoint,等等。

有关您的和之间关系的信息,请参阅此问题drawRect:CALayerUIView

于 2012-09-18T16:52:34.027 回答
0

尝试使用禁用单元格的选择突出显示

[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
于 2012-09-18T16:24:37.047 回答
0

尝试在你的(被覆盖的那个)初始化期间设置self.layer.masksToBounds = YES和(也许) 。(见这个问题self.opaque = NOUIViewdrawRect

于 2012-09-18T16:40:31.960 回答
0

你犯了一个错误:

请转到 UItableViewCell 中的视图并检查背景颜色,它可能是黑色或其他颜色,将其重置为清除颜色,然后检查您的结果,

于 2016-03-21T13:05:39.807 回答