Swift - 自定义和默认 TableView 的混合 Headers
Swift - Mix of Custom and default TableView Headers
在表格视图中,我想要 1 个自定义样式 header,其余样式为默认样式,但我不确定如何指定默认样式 header。到目前为止我有:
override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
if section == 1 {
self.view.addSubview(viewDimensionHeader)
return viewDimensionHeader // Works great
} else {
let view = UIView() // Not sure how to return default section header
return view
}
}
自定义 header 工作正常。只是在寻找调用什么来使用标准 header.
谢谢
Return UITableViewHeaderFooterView
的实例以获取默认值 header/footer。然后,您可以在标准视图上设置 background/text 等。
注意:您确实应该向 tableView 注册所有 header 和页脚视图(就像您对 tableView 单元格所做的那样):
tableView.register(viewDimensionHeader.self, forHeaderFooterViewReuseIdentifier: "CustomHeaderCell")
然后您可以将它们出队(重用)以提高性能:
let headerCell = tableView.dequeueReusableHeaderFooterView(withIdentifier: "CustomHeaderCell")
另请注意,您不应将 header 视图添加为主视图的子视图 - tableView 会为您处理,将其添加为自己的子视图。只是 return 个单元格。
在您的 Tableview 中设计单元格喜欢随附的屏幕截图,然后在 header 中使用您想要的任何单元格:
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let cell = tableView.dequeueReusableCell(withIdentifier: "headerCell") as! CartOrderHeaderTableViewCell
cell.packageNameLabel.text = self.tableArray[section].package ?? "N/A"
return cell.contentView
}
在表格视图中,我想要 1 个自定义样式 header,其余样式为默认样式,但我不确定如何指定默认样式 header。到目前为止我有:
override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
if section == 1 {
self.view.addSubview(viewDimensionHeader)
return viewDimensionHeader // Works great
} else {
let view = UIView() // Not sure how to return default section header
return view
}
}
自定义 header 工作正常。只是在寻找调用什么来使用标准 header.
谢谢
Return UITableViewHeaderFooterView
的实例以获取默认值 header/footer。然后,您可以在标准视图上设置 background/text 等。
注意:您确实应该向 tableView 注册所有 header 和页脚视图(就像您对 tableView 单元格所做的那样):
tableView.register(viewDimensionHeader.self, forHeaderFooterViewReuseIdentifier: "CustomHeaderCell")
然后您可以将它们出队(重用)以提高性能:
let headerCell = tableView.dequeueReusableHeaderFooterView(withIdentifier: "CustomHeaderCell")
另请注意,您不应将 header 视图添加为主视图的子视图 - tableView 会为您处理,将其添加为自己的子视图。只是 return 个单元格。
在您的 Tableview 中设计单元格喜欢随附的屏幕截图,然后在 header 中使用您想要的任何单元格:
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let cell = tableView.dequeueReusableCell(withIdentifier: "headerCell") as! CartOrderHeaderTableViewCell
cell.packageNameLabel.text = self.tableArray[section].package ?? "N/A"
return cell.contentView
}