【问题标题】:Dividing Cells in a UITableView在 UITableView 中划分单元格
【发布时间】:2013-07-16 02:57:13
【问题描述】:

我正在尝试获取此结果以获取 TitleTextLabel|DescTextLabel 与将两者分开的行。就像这个例子一样,主页是从 URL 字段中分离出来的。

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

谢谢

【问题讨论】:

  • 你问的是第一个单元格的竖线,还是旁边有红色“-”的部分的横线?
  • @rdelmar 我问的是第一个单元格中的垂直线。谢谢!

标签: ios objective-c uitableview uitextfield


【解决方案1】:

我可以想到几种方法来添加分界线。您可以覆盖drawRect,并在那里画线。另一种可以完全在 IB 中完成的方法是在左右标签之间添加一个 1 像素宽的标签(浅灰色背景,无文本)。左标签应该有一个固定的宽度和约束到单元格的左侧和 1 像素宽的标签。正确的标签应该只限制 1 像素宽的标签和单元格的右侧(没有固定宽度)。 1 像素宽的标签应该对单元格的顶部和底部有 0 长度限制和固定宽度。

【讨论】:

  • 这正是我最终要做的!谢谢@rdelmar
【解决方案2】:

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

1) 创建名为CellDividerView 的UIView 子类覆盖UIView 子类CellDividerView.m 中的-drawRect: 方法。绘图代码用纯色填充整个矩形,在本例中为深灰色。

- (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 偏移量可以让您准确地将线条定位在您想要的位置。

【讨论】:

  • 说什么?这如何回答这个问题?我认为问题是关于“主页”和“URL”之间的灰线。
  • 该行是同一表格视图部分中两个不同行之间的行分隔符。
  • 但他的问题引用了主页和 URL (TitleTextLabel|DescTextLabel) 之间的线——垂直线。这不是两行之间的分界线。但也许我误解了他的问题,因为他似乎认为你的答案是正确的。
  • @rdelmar 感谢您的跟进;你是对的,我问的是第一个单元格中的垂直线。安德鲁,感谢您的时间和精力,昨晚大约 12 点到 1 点我接受了答案,并认为睡个好觉后我会更好地理解它。
  • @vzm/@rdelmar 我误解了这个问题。我已经更新了我的答案以反映如何在单元格中绘制垂直线。
【解决方案3】:

默认没有分界线,但是试试UITableViewCellStyleValue2

【讨论】:

    猜你喜欢
    • 2022-01-13
    • 1970-01-01
    • 2016-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多