如何删除多余的空白单元格在 TableViewController,iOS-Swift

嗨,我有一个带有两个静态单元格的 TableViewController,但是当显示时,它显示了两个静态单元格,然后是桌面视图的所有其他空单元格。然而,我不想显示这些细胞,因为它们是无用的。我如何隐藏其余的细胞,除了两个静态细胞?

69786 次浏览

viewDidLoad()函数中添加以下代码行:

tableView.tableFooterView = UIView()

除此之外,将 tableFooterView设置为 UIView()会删除行的原因是您正在将一个空的 UIView()对象设置为该属性。根据苹果的文档:

var tableFooterView: UIView?

因此,设置一个空的 UIView ()将不会在此属性的数据下显示任何内容。

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

tableView.tableFooterView = nil

在 Storyboard 中也可以实现这一点,只需将视图拖动到表视图的页脚区域,然后使用属性检查器将其高度和背景颜色分别设置为1和清除。

(这里假设出于某种原因您不能或不想仅仅使用 Group 样式设置。否则,就这么做吧。)

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

viewDidLoad方法中调用此代码。

简单地说:

tableView.tableFooterView = UIView()

说明:

这是完全有效的,工程完全迅速3。由于将一个空的 UIView ()对象设置为属性,因此将 tableFooterView 设置为 UIView ()将删除这些行。

选择您的 UITableView,转到属性检查器并将样式更改为 Grouped。

enter image description here

我尝试了 tableview.tableFooterView = UIView () ,但它对我不起作用。我正在使用一个自定义 TableViewCell,也许这就是原因。

我找到了一个黑客,在我的编号里

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

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

Swift 4 详细说明 HorseT 的回答,首先在故事板中将控件从表格视图拖动到视图控制器类中,并创建一个名为 tableView 的出口。

@IBOutlet weak var tableView: UITableView!

然后,视图控制器中的 viewDidLoad 应该是这样的:

    override func viewDidLoad() {
super.viewDidLoad()


tableView.dataSource = self
tableView.delegate = self


tableView.tableFooterView = UIView()
}

基于以上 迅速答案。

tableView.tableFooterView = UIView(frame: .zero)

阿波比的回答是正确的。我们可以通过添加

tableView.tableFooterView = UIView() // to remove extra cells in tableView

如果你想删除应用程序中所有 UITableViews的行,只需添加如下扩展:

Swift 5.0

extension UITableView {


override open func didMoveToSuperview() {
super.didMoveToSuperview()
self.tableFooterView = UIView()


}

设置 tableFooterView应该可以删除额外的单元格视图。

   @IBOutlet weak var tableView: UITableView! {
didSet {
tableView.tableFooterView = UIView(frame: .zero)
}
}

在“ 覆盖 func viewDidLoad ()”或“ “覆盖 func viewWillAppear (_ Animated: Bool)””函数中添加以下代码。

TableFooterView = UIView ()