UITableViews 之间的间距,如设置应用程序

Spacing between UITableViews like Settings Application

我是 iOS 开发人员的新手,我希望某些单元格之间有间距,就像官方设置应用程序那样。

有没有一种方法可以在一个 TableView 中执行此操作,还是我必须插入更多?

如果我有更多的 TableView,则屏幕不能完全滚动,可能不是所有的都能显示。

有2个选项:

  • 如果您正在使用 static table 视图:创建空单元格作为间距

  • 如果您正在使用 normal (dynamic) table 查看:

    • 创建空单元格作为间距

    • Emply Space是Header view 记得设置Table样式是Group

如果你希望在部分之间有间隙,你可以简单地使用 UITableView 的 heightForFooterInSection 方法。这将在每个部分之间产生间隙。如果您希望拥有自定义视图(如自定义颜色甚至您选择的图像),您可以使用 viewForFooterInSection 方法和 return 所需的视图以编程方式制作或创建 xib(如果您创建 xib,您将需要注册 Nib以便 UIViewController 识别 xib)。您可以使用超类为 UIView.

的每个 UI 元素

如果您想要各部分之间的默认分隔符,请将您的 tableView 分组。要自定义这些 headers,请实施 UITableViewDelegate 的这两个方法并根据需要更改值。例如,设置应用程序作为某些分节符上的标签而不是空视图:

    extension ViewController: UITableViewDelegate {
        func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
            return UITableViewAutomaticDimension
        }
        func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
            return UIView()
        }
    }

要获得看起来像设置中的 TableView,您必须将 TableViewStyle 设置为 Grouped 并使用 Sections对于separating/grouping某组TableViewCells

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return myNumberOfRows
}

func numberOfSections(in tableView: UITableView) -> Int {
    return myNumberOfSections
}

有关 numberOfSections 的更多信息,请查看 UITableViewDataSource 委托。