Answers:
在您的viewDidLoad()
函数中添加以下代码行:
tableView.tableFooterView = UIView()
NSTableView
吗?它没有tableFooterView
。
tableView.tableFooterView = UIView()
除此之外,设置tableFooterView
为UIView()
删除行的原因是因为您正在UIView()
为属性设置一个空对象。根据Apple文档:
var tableFooterView: UIView?
因此,设置一个空的UIView()不会在此属性的数据下方显示任何内容。
您可以通过tableFooterView
将默认值重置为空行,如下所示:
tableView.tableFooterView = nil
Swift 4 详细介绍HorseT的答案,首先将控件从情节提要中的Table View拖动到View Controller类,然后创建一个名为tableView的出口。
@IBOutlet weak var tableView: UITableView!
然后,您的View Controller中的viewDidLoad应该看起来像这样:
override func viewDidLoad() {
super.viewDidLoad()
tableView.dataSource = self
tableView.delegate = self
tableView.tableFooterView = UIView()
}
基于以上的迅速回答。
tableView.tableFooterView = UIView(frame: .zero)
如果要删除UITableViews
应用程序中所有内容的行,只需添加一个扩展名,如下所示:
斯威夫特5.0
extension UITableView {
override open func didMoveToSuperview() {
super.didMoveToSuperview()
self.tableFooterView = UIView()
}
Abobe anwer是正确的。我们可以通过添加
tableView.tableFooterView = UIView() // to remove extra cells in tableView
我尝试了tableview.tableFooterView = UIView(),但它对我不起作用。我使用的是自定义TableViewViewCell,这也许就是原因。
我确实找到了骇客。在我的func numberOfRowsInSection中
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return yourArrayClass.count - 1
}
这使得我多余的空白自定义UITableViewCell不再显示。当然,它是额外的空白。我将通过添加更多的单元格对其进行更多测试。作为参考,我在cellForRowAt函数内部使用了Swift 3 Firebase,这是一个自定义单元类。