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

时间:2012-05-14 18:10:46

标签: ios 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:]硬编码到我的应用中?

2 个答案:

答案 0 :(得分:1)

获取其超级视图的背景颜色

UIColor * background = [self.superview backgroundColor];

我认为在自定义绘制rect的顶部调用[super drawRect:rect];将解决此问题

答案 1 :(得分:1)

你尝试过吗?

 [[UIColor clearColor] set];