为单个UITableViewCell设置分隔符插入

时间:2015-04-28 07:56:22

标签: ios objective-c uitableview

有没有办法为单个UITableViewCell设置分隔符插入?看来我只能用setSeparatorInset:方法设置全局UITableView分隔符,但是我希望在同一个UITableView中有不同的insets。有可能吗?

我尝试使用tableView:willDisplayCell:forRowAtIndexPath:在具体的UITableViewCell中设置分隔符插入,如下所示,但它不起作用。

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
  ...
  [cell setSeparatorInset:UIEdgeInsetsMake(0, 50, 0, 0)];
}

我正在开发iOS7。

2 个答案:

答案 0 :(得分:1)

如果你知道单元格indexPath。您可以使用

进行设置

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { ... if (indexPath.row == 0) { // Customize here [cell setSeparatorInset:UIEdgeInsetsMake(0, 50, 0, 0)]; } else { [cell setSeparatorInset:UIEdgeInsetsMake(0, 0, 0, 0)]; } }

如果没有,您应该继承UITableView并在那里自定义分隔符插入。然后将其加载到tableview中。请勿在{{1​​}}方法和separatorInset中设置cellForRowAtIndexPath:属性。

答案 1 :(得分:0)

您可以使用自定义单元格来完成此操作。 您将UITableView设置为根本不显示分隔符(separatorStyle = UITableViewCellSeparatorStyleNone),并让UITableViewCell子类处理分隔符的绘制。最简单的方法是在每个单元格上有一个“分隔符视图”。现在,在cellForRowAtIndexPath中配置单元格时,您可以设置您喜欢的任何内容。