下面UITableView
是自定义的UITableViewCells
,我可以在自定义中使用此行微调分隔符UITableViewCell
:
self.separatorInset = UIEdgeInsetsMake(0, kDefaultSeparatorLeftInset, 0, 0);
但是,该部分底部的单元格有一个默认分隔符,它覆盖了UIEdgeInsets
我设置的自定义。
我希望所有分隔符的宽度相同,有没有办法在不手动重绘分隔符的情况下做到这一点?
下面UITableView
是自定义的UITableViewCells
,我可以在自定义中使用此行微调分隔符UITableViewCell
:
self.separatorInset = UIEdgeInsetsMake(0, kDefaultSeparatorLeftInset, 0, 0);
但是,该部分底部的单元格有一个默认分隔符,它覆盖了UIEdgeInsets
我设置的自定义。
我希望所有分隔符的宽度相同,有没有办法在不手动重绘分隔符的情况下做到这一点?
经过一些实验,我发现唯一真正的解决方案是使用以下方法设置UITableViewStyle
toUITableViewStylePlain
并设置空页脚:
-(UIView*)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
return [[UIView alloc] initWithFrame:CGRectZero];
}
-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{
return 0.01f;
}
对于某些人来说,这不是一个令人满意的解决方案,因为UITableViewStylePlain
它没有提供 的所有功能UITableViewStyleGrouped
,但它给了我没有全角分隔符的部分。
经过一些实验,我找到了解决方案!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;
给表格一个空的页脚:
self.tableFooterView = [[UIView alloc] init]
使用separatorInset
tableView 本身的属性,而不是单个单元格。tableView 的 separatorInset 设置默认的 inset,可以被单元格覆盖,以及底部“额外”单元格的 inset。