1

この結果を取得して、2 つを分割する行で TitleTextLabel|DescTextLabel を取得しようとしています。この例のように、ホームページは URL フィールドから分割されています。 ここに画像の説明を入力

誰かが私を正しい方向に向けることができますか? オンラインで / & ドキュメントを読みましたが、探している正しい答えが見つかりません。私はあなたの助けに感謝します!

ありがとう

4

3 に答える 3

2

セルにその線を手動で描画する必要があります。

1) UIView サブクラスのメソッドをCellDividerViewオーバーライドするという UIView サブクラスを作成します。描画コードは、四角形全体を単色 (この場合は濃い灰色) で塗りつぶします。-drawRect:CellDividerView.m

- (void)drawRect:(CGRect)rect
{
    CGContextRef currentContext = UIGraphicsGetCurrentContext();
    CGContextSaveGState(currentContext);
    CGContextSetFillColorWithColor(currentContext, [UIColor lightGrayColor].CGColor);
    CGContextFillRect(currentContext, rect);
    CGContextRestoreGState(currentContext);
}

テーブル ビュー デリゲートの -tableView:cellForRowAtIndexPath: で、セル上の必要な場所にフレームを配置して CellDividerView を作成し、初期化します。以下のコードでは、右に 40 ポイント、上から 0 ポイントの位置にあり、幅は 1 ポイントで、セルの高さ全体に垂直に広がっています。次に、このビューがセルの に追加されcontentViewます。

#define CELL_VIEW_TAG 1234
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
    cell.detailTextLabel.text = [NSString stringWithFormat:@"Section %u", indexPath.section];
    cell.textLabel.text = [NSString stringWithFormat:@"Row %u", indexPath.row];

    // Configure the cell...
    CellView *cellView = (CellView *)[cell.contentView viewWithTag:CELL_VIEW_TAG];
    if (!cellView)
    {
        cellView = [[CellView alloc] initWithFrame:CGRectMake(40.0, 0.0, 1.0, cell.contentView.frame.size.height)];
        [cell.contentView addSubview:cellView];
        cellView.tag = CELL_VIEW_TAG;
    }

    return cell;
}

結果は次のようになります。

縦の分割線があるテーブル ビュー セル

カスタム セル スタイルを使用して 40.0pt オフセットを調整すると、必要な場所に線を正確に配置できます。

于 2013-07-16T03:14:42.897 に答える
2

その境界線を追加するには、いくつかの方法が考えられます。drawRect をオーバーライドして、そこに線を引くことができます。完全に IB で実行できる別の方法は、左右のラベルの間に 1 ピクセル幅のラベル (明るい灰色の背景でテキストなし) を追加することです。左ラベルの幅は固定で、セルの左側と 1 ピクセル幅のラベルに制限されている必要があります。右側のラベルには、1 ピクセル幅のラベルとセルの右側に制約が必要です (幅は固定されていません)。1 ピクセル幅のラベルには、セルの上部と下部の長さの制約が 0 で、幅が固定されている必要があります。

于 2013-07-16T14:52:32.703 に答える
0

デフォルトでは分割線はありませんが、 UITableViewCellStyleValue2 を試してください

于 2013-07-16T03:06:27.160 に答える