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

我跟着这个post: 如何在iPhone中自定义tableView分隔符

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

我会告诉你两个图像,两行的是我的单元格自定义高度的结果。

在这里输入图像说明

用自定义高度: 在这里输入图像说明

- (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; } 

嗨问题是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;