在UITableView中划分单元格

时间:2013-07-16 02:57:13

标签: ios objective-c uitableview uitextfield

我正在尝试获取此结果以获取TitleTextLabel | DescTextLabel以及用于打破两者的行。就像这个例子一样,主页与URL字段分开。 enter image description here

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

由于

3 个答案:

答案 0 :(得分:2)

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

1)创建名为CellDividerView的UIView子类覆盖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;
}

结果是这样的:

Table View Cells with Vertical Dividing Lines

使用自定义单元格样式并调整40.0pt偏移量可以让您准确地将线条定位在所需的位置。

答案 1 :(得分:2)

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

答案 2 :(得分:0)

默认情况下没有划分它的行,但请尝试UITableViewCellStyleValue2