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 );
    }

同じブラックボックス。

[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 に答える