0

我在分组单元格中自定义绘制表格单元格。如何获得正确的背景颜色?

我实际上在单元格内有一个视图,并且正在自定义如何在其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% 的灰色。

它看起来像这样:

白盒

如果您的屏幕没有很好地校准,您可能看不到差异。但它就在那里。

当我尝试这个时:

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

相反,我得到了黑色背景,如下所示:

黑盒子

我的假设是我需要在我的绘制例程中填充每个像素。

当我尝试这个时:

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

我也得到黑色背景。我认为backgroundColor我的观点是transparentColor

我也试过这个:

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

同一个黑匣子。

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

4

2 回答 2

1

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

UIColor * background = [self.superview backgroundColor];

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

于 2012-05-14T18:19:40.337 回答
1

你有没有尝试过?

 [[UIColor clearColor] set];
于 2012-05-14T18:20:25.683 回答