当我设置一个有4行的表格视图时,在填充行的下面仍然有额外的分隔行(或额外的空白单元格)。
如何移除这些单元格?
当我设置一个有4行的表格视图时,在填充行的下面仍然有额外的分隔行(或额外的空白单元格)。
如何移除这些单元格?
当前回答
我知道这个问题已经被接受的答案,但我在这里放了不同的方法,如何隐藏额外的分隔线UITableView。
您可以隐藏tableView的标准分隔线,并在每个单元格的顶部添加您的自定义行。
更新:
添加自定义分隔符最简单的方法是添加高度为1px的简单UIView:
UIView* separatorLineView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 1)];
separatorLineView.backgroundColor = [UIColor grayColor]; /// may be here is clearColor;
[cell.contentView addSubview:separatorLineView];
OR
self.tblView=[[UITableView alloc] initWithFrame:CGRectMake(0,0,320,370) style:UITableViewStylePlain];
self.tblView.delegate=self;
self.tblView.dataSource=self;
[self.view addSubview:self.tblView];
UIView *v = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 10)];
v.backgroundColor = [UIColor clearColor];
[self.tblView setTableHeaderView:v];
[self.tblView setTableFooterView:v];
[v release];
OR
- (float)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
// This will create a "invisible" footer
return 0.01f;
}
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
// To "clear" the footer view
return [[UIView new] autorelease];
}
或 我喜欢的最好最简单的方式就是
self.tableView.tableFooterView = [[UIView alloc] init];
试试其中任何一种;
其他回答
Swift 3 /Swift 4 /Swift 5 +,非常简单
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
//MARK:- For Hiding the extra lines in table view.
tableView?.tableFooterView = UIView()
}
OR
override func viewDidLoad(_ animated: Bool) {
super.viewDidLoad(animated)
//MARK:- For Hiding the extra lines in table view.
tableView?.tableFooterView = UIView()
}
如果你使用Swift,在管理tableview的控制器viewDidLoad中添加以下代码:
override func viewDidLoad() {
super.viewDidLoad()
//...
// Remove extra separators
tableView.tableFooterView = UIView()
}
Swift 4.0扩展
只是一个小扩展的故事板:
extension UITableView {
@IBInspectable
var hideSeparatorForEmptyCells: Bool {
set {
tableFooterView = newValue ? UIView() : nil
}
get {
return tableFooterView == nil
}
}
}
如果您不希望在最后一个单元格之后有任何分隔符,那么您需要为页脚设置一个接近零但非零的高度。
在你的UITableViewDelegate中:
func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return .leastNormalMagnitude
}
为了以编程方式消除UItableview底部额外的分隔行,只需写下下面两行代码,它就会从UItableview底部删除额外的分隔行。
tableView.sectionFooterHeight = 0.f;
tableView.sectionHeaderHeight = 0.f;
这招对我一直很管用,你自己试试。