1

IBでは、

スタイル: グループ化、シングル ライン エッチング、カラー ホワイト。私のビューの背景はクリアカラーです。

この ViewController の viewDidLoad で、ダミーの背景ビューを作成します。

UIView *tableBgView = [[UIView alloc] initWithFrame:self.tableView.frame];
tableBgView.backgroundColor = [UIColor clearColor];
self.tableView.backgroundView = tableBgView;
[tableBgView release];

cellForRowAtIndexPath には次のものがあります。

    UIView *bgView = [[UIView alloc] initWithFrame:cell.bounds];
    bgView.backgroundColor = [UIColor clearColor];
    cell.backgroundView = bgView;
    [bgView release];

私がやろうとしているのは、グループ化されたテーブルの丸みを帯びた長方形の外観の代わりに長方形の背景を使用することです.cellForRowAtIndexPathでは、丸みを帯びた長方形の外観を取り除くためにclearColor backgroundViewを作成するため、セパレーターはもうありません. この bgView の下部にある別の単一ピクセルの UIView 行を追加して、セパレーターを元に戻しますか? それとももっと良い方法がありますか?ありがとう。

4

1 に答える 1

1

さあ、これが私drawRect:のです。これで丸みを帯びたセルが削除されます。ご覧のとおり、これはグループ化されたテーブルビューコントローラでも使用されます。

サンプル画像は次のとおりです。

サンプル画像

- (void) drawRect:(CGRect)rect { CGContextRef context = UIGraphicsGetCurrentContext();

// A left and right margin
float margin = 10.0f;

// Copy the rect and modify it's values to match the margin
CGRect _rect = rect;
_rect.size.width = _rect.size.width - (margin * 2);
_rect.origin.x = margin;

// Fill with a background color, in this case, white.
[[UIColor whiteColor] set];
CGContextFillRect(context, _rect);

// Set a line color
[[UIColor grayColor] set];

// Shift the move point to match our margin
CGContextMoveToPoint(context, margin, _rect.size.height);

// Draw the line with the same width as the cell PLUS the margin (because we shifted it).
CGContextAddLineToPoint(context, _rect.size.width + margin, _rect.size.height);

// Finish
CGContextStrokePath(context);

}

于 2012-06-20T18:50:51.803 に答える