删除UITableViewCell的最后一个分隔符

时间:2013-10-31 10:07:55

标签: ios iphone objective-c uitableview

目前我有UITableView。我想删除最后一个单元格的最后一个分隔符。

我是这样做的:

 UIView *footerN = [[UIView alloc] initWithFrame:CGRectMake(0, 0, _tblStateGaisou.frame.size.width, 10)];

 [footerN setBackgroundColor:[UIColor clearColor]];

 tblStateNaisou.tableFooterView = footerN;

这仅适用于iOS 7,iOS 6上没有任何内容。

有谁知道如何解决这些问题?

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:2)

显示的分隔符数由tableview本身决定。如果你想删除一个分隔符,你就会很难。

一个选项是完全删除分隔符,并在每个单元格的底部包含您自己的分隔符,省略任何您不希望看到的分隔符。

答案 1 :(得分:1)

适用于iOS 7.1

  if(indexPath.row == (arrayWithData.count - 1)) 
     {
        NSArray *subViews = [[[cell subviews] lastObject] subviews];
        for (UIView *view in subViews)
            {
               if([NSStringFromClass(view.class) isEqualToString:@"_UITableViewCellSeparatorView"]) {
                    [view removeFromSuperview];
                }
            }
        }

答案 2 :(得分:0)

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{        
    return [[UIView alloc] initWithFrame:CGRectZero];
}

在iOS 7.0中,如果表视图部分的页脚高度为非零,则不会在该部分的最后一行放置分隔符,因此只需将空视图设置为所需部分的页脚即可这将实现你的目标。对我来说很棒。

奇怪的是,如果使用tableView:heightForFooterInSection为同一个页脚视图设置高度为零,则会丢失效果并重新显示最后一个分隔符。请务必返回非零高度(例如"返回1")。

不确定这是否适用于iOS 6.但它与您的方法略有不同(部分页脚与表格页脚)。