30

下面UITableView是自定义的UITableViewCells,我可以在自定义中使用此行微调分隔符UITableViewCell

self.separatorInset = UIEdgeInsetsMake(0, kDefaultSeparatorLeftInset, 0, 0);

但是,该部分底部的单元格有一个默认分隔符,它覆盖了UIEdgeInsets我设置的自定义。

我希望所有分隔符的宽度相同,有没有办法在不手动重绘分隔符的情况下做到这一点?

iOS7 中带有宽部分分隔符的 UITableView

4

4 回答 4

12

经过一些实验,我发现唯一真正的解决方案是使用以下方法设置UITableViewStyletoUITableViewStylePlain并设置空页脚:

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

-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{
    return 0.01f;
}

对于某些人来说,这不是一个令人满意的解决方案,因为UITableViewStylePlain它没有提供 的所有功能UITableViewStyleGrouped,但它给了我没有全角分隔符的部分。

在此处输入图像描述

于 2013-10-18T11:06:57.790 回答
4

经过一些实验,我找到了解决方案!tableFooterView 可以像这样覆盖分隔符:

UIView *v = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 1)];
UIView *v2 = [[UIView alloc] initWithFrame:CGRectMake(0, -1, 320, 2)];
v2.backgroundColor = [UIColor whiteColor];
v.backgroundColor = [UIColor whiteColor];
[v addSubview:v2];
self.tableView.tableFooterView = v;
于 2014-04-09T22:48:01.563 回答
2

给表格一个空的页脚:

self.tableFooterView = [[UIView alloc] init]
于 2013-10-18T14:26:50.423 回答
2

使用separatorInsettableView 本身的属性,而不是单个单元格。tableView 的 separatorInset 设置默认的 inset,可以被单元格覆盖,以及底部“额外”单元格的 inset。

于 2013-10-02T13:26:43.617 回答