1

我试图获得这个结果来获得一个 TitleTextLabel|DescTextLabel 与打破这两者的行。就像这个例子一样,主页是从 URL 字段中分离出来的。 在此处输入图像描述

有人可以指出我正确的方向吗?我已在线阅读 / 和文档,但找不到我正在寻找的正确答案。我感谢您的帮助!

谢谢

4

3 回答 3

2

您需要手动在单元格上绘制该线。

1) 创建 UIView 子类,调用CellDividerViewOverride 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 ,其框架位于单元格上您想要的位置。在下面的代码中,它位于右侧 40pts,距顶部 0pts,宽 1pt,垂直跨越整个单元格高度。接下来,将此视图添加到单元格的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 回答