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