如何在表格视图中快速添加页脚作为附加信息

Posted

技术标签:

【中文标题】如何在表格视图中快速添加页脚作为附加信息【英文标题】:How to add footer as additional information in table view swift 【发布时间】:2020-10-19 12:52:20 【问题描述】:

我想创建一个页脚作为附加信息。是这样的:

我试图给出一个页脚,但它显示了一个标题并且它是粗体的。 此页脚的字体较小,页脚的背景就像在表格之外。 我该怎么做?

这是我的一些代码

override func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? 
    let footerView = UIView()
    if section == 1 
        let label = UILabel()
        label.text = "Additional information here"
        label.font = .systemFont(ofSize: 16)
        label.textColor = UIColor.black
        label.backgroundColor = UIColor.clear
        label.textAlignment = .left
        footerView.addSubview(label)
    
    return footerView

更新:

我正在获取屏幕最左侧的边距。

任何帮助将不胜感激

谢谢

【问题讨论】:

你现在得到了什么? 【参考方案1】:

使用viewForFooterInSection 返回自定义UILabel

func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? 
    let label = UILabel()
    label.numberOfLines = 0
    label.text = "Your text"
    label.textColor = .gray
    return label

【讨论】:

【参考方案2】:

您可以通过对UILabel 设置约束来修复您的代码:

let footerView = UIView()
if section == 1 
  let label = UILabel()
  label.text = "Additional information here"
  label.font = .systemFont(ofSize: 16)
  label.textColor = UIColor.black
  label.backgroundColor = UIColor.clear
  label.textAlignment = .left
  footerView.addSubview(label)
  label.translatesAutoresizingMaskIntoConstraints = false
  label.topAnchor.constraint(equalTo: footerView.topAnchor).isActive = true
  label.leftAnchor.constraint(equalTo: footerView.leftAnchor).isActive = true
  label.rightAnchor.constraint(equalTo: footerView.rightAnchor).isActive = true
  label.bottomAnchor.constraint(equalTo: footerView.bottomAnchor).isActive = true

return footerView

但是直接使用UILabel会更简单,因为UILabel也是UIView,你可以直接返回。

【讨论】:

嘿伙计,你能看看我更新的帖子吗?我曾尝试使用您的锚点,但它给了我屏幕最左侧的页脚。我希望我的左边距有 +20。我怎么做?提前谢谢你 您可以通过以下方式实现此目的:label.leftAnchor.constraint(equalTo: footerView.leftAnchor, constant: 20).isActive = true【参考方案3】:

您可以使用heightForFooterInSectionviewForFooterInSection 委托在 TableView 中添加页脚视图。您可以自定义 UILabel 的值。

仅为要添加页脚视图的相关部分创建并返回标签和相关高度。

override func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat 
    return section == 1 ? 20 : CGFloat.Magnitude.leastNonzeroMagnitude


override func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? 
    if section != 1  return nil 
    let label = UILabel()
    label.numberOfLines = 0
    label.text = "Additional information here"
    // customize font and colors.
    label.font = .systemFont(ofSize: 16)
    label.textColor = UIColor.black
    label.backgroundColor = UIColor.clear
    label.textAlignment = .left
    return label

【讨论】:

以上是关于如何在表格视图中快速添加页脚作为附加信息的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Storyboard 中向 UITableView 添加页脚

如何仅在表格视图的文本最后一部分中添加页脚文本?

如何在ListView中添加页脚?

如何在 tableview 底部附加 Xib

如何在 UITableView swift 3 中使用动画在底部滚动

如何在侧边菜单的底部快速添加一个按钮?