分组UITableView自定义绘制单元格,而不更改背景颜色?

问题描述:

我自定义绘制分组单元格中的表格单元格。我如何获得背景色?分组UITableView自定义绘制单元格,而不更改背景颜色?

我实际上在单元格内有一个视图,并且正在自定义该视图在其drawRect:中的绘制方式。 我尝试这样做:

- (void)drawRect:(CGRect)rect 
{ 
    BOOL isHighlighted = self.highlighted; 
    CGRect frame = self.bounds; 

    CGContextRef c = UIGraphicsGetCurrentContext(); 

    if (!isHighlighted) { 
     [[UIColor whiteColor] set]; 
     CGContextFillRect(c, frame); 
    } 

    // rest of drawing 
} 

这与普通的表视图效果很好,但它不是为分组表视图匹配。它看起来像大约96%的灰色。

它看起来像这样:

White box

如果屏幕不能很好校准,你可能看不出来区别。但它在那里。

当我尝试这样做:

if (!isHighlighted) { 
     //[[UIColor whiteColor] set]; 
     //CGContextFillRect(c, frame); 
    } 

我,而不是有一个黑色的背景,就像这样:

Black box

我的假设是,我需要填写的每一个像素在我的抽签程序。

当我试试这个:

if (!isHighlighted) { 
     [[self backgroundColor] set]; 
     CGContextFillRect(c, frame); 
    } 

我也得到了黑色的背景。我认为我认为的backgroundColortransparentColor

我试过这个,太:

if (!isHighlighted) { 
     CGContextFillRect(c, frame); 
    } 

同样的黑色盒子。

如何匹配分组表格视图的背景颜色,而不使用吸管并将[UIColor colorWithWhite: alpha:]硬编码到我的应用中?

得到

UIColor * background = [self.superview backgroundColor]; 

我想打电话[super drawRect:rect];在您的自定义的顶部绘制矩形将解决这个问题

+0

我不得不去掉两个超级浏览器,但是这个方法对我有用。 –

您是否尝试过它的超视图的背景颜色?

[[UIColor clearColor] set];