如何删除TableViewController,iOS中多余的空单元格 – Swift

您好我有一个TableViewController与两个静态单元格,但显示时,它显示两个静态单元格,然后显示所有其他为tableview的空单元格。 但是我不想显示这些单元格,因为它们是无用的。 除了两个静态单元之外,我如何隐藏其余的单元格?

在你的viewDidLoad()函数中join这行代码:

 tableView.tableFooterView = UIView() 

添加到这,为什么设置tableFooterViewUIView()删除行的原因是因为你设置一个空的UIView()对象的属性。 根据Apple文档:

 var tableFooterView: UIView? 

因此,设置一个空UIView()将显示此属性的数据下面的任何东西。

您可以通过将tableFooterView重置为默认值来返回空行,如下所示:

 tableView.tableFooterView = nil 

您也可以通过将视图拖到表视图的页脚区域,然后将其高度和背景颜色设置为1并分别使用属性检查器清除,从而在故事板中实现此目的。

(这里假设你不能或不想仅仅因为某种原因使用组风格设置,否则就这么做)。

 tableView.tableFooterView = UIView.init(frame: CGRect.zero) 

viewWillAppear方法内调用此代码。 而且会工作

select你的UITableView,转到属性检查器,并将样式更改为分组。

只需添加:

 tableView.tableFooterView = UIView() 

说明:

这是完全有效的,并在swift中完美工作3.By因为你正在设置一个空的UIView()对象的属性,设置tableFooterView到UIView()删除行。

我试过tableview.tableFooterView = UIView(),它不适合我。 我正在使用自定义TableViewViewCell,也许这就是为什么。

我确实发现了一个黑客。 在我的func numberOfRowsInSection

 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return yourArrayClass.count - 1 } 

这使得我额外的空白自定义UITableViewCell不再显示。 当然它是额外的空白。 我将通过添加更多的单元格来testing它。 作为参考,我在cellForRowAt函数中使用Swift 3,Firebase,一个自定义单元类。