如何在单元格获得自定义高度时自定义UITableView分隔符

时间:2014-12-10 16:25:23

标签: ios iphone uitableview

我关注了这篇文章:How to customize tableView separator in iPhone

问题是,当我的单元格有自定义高度时,它不能正常工作。

我将向您展示两个图像,两行图像是我的细胞具有自定义高度的结果。

enter image description here

使用自定义高度: enter image description here

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UIView *lineView = [[UIView alloc] initWithFrame:CGRectMake(0, cell.contentView.frame.size.height - 1.0, cell.contentView.frame.size.width, 1)];

    lineView.backgroundColor = [UIColor darkGrayColor];
    [cell.contentView addSubview:lineView];
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return 50;
}

1 个答案:

答案 0 :(得分:1)

问题是在cellForRowAtIndexPath方法中,您的单元格还不知道它的高度。如果您使用自定义高度(您知道此高度,请在cellForRow中使用它...)。

这里的例子:

  - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UIView *lineView = [[UIView alloc] initWithFrame:CGRectMake(0, 49.0, cell.contentView.frame.size.width, 1)];

lineView.backgroundColor = [UIColor darkGrayColor];
[cell.contentView addSubview:lineView];
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return 50;
}

另外,不要忘记您可以使用separatorStyle和separatorInset,以便自定义此行。如果您不使用它,请将其置之:

   self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;