【问题标题】:How to vertically align text in tableview header swift如何快速垂直对齐表格视图标题中的文本
【发布时间】:2017-08-15 10:55:47
【问题描述】:

这是我尝试过的。

func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
    let header = view as? UITableViewHeaderFooterView
    header?.textLabel!.frame = CGRect(x: 0, y: 25, width: tableView.frame.size.width, height: 50)
    header?.textLabel?.text = "Testing"
    header?.textLabel?.textColor = UIColor.gray
    header?.textLabel?.font = UIFont(name: "Avenir-Book", size: 12)
    return header
}

仍然无法在部分标题中垂直对齐文本。

有什么想法吗?

【问题讨论】:

  • 你能发一张图片看看你正在尝试什么以及你现在拥有什么吗?
  • 我试过的东西没有任何动静。它仍然是默认的标题标签外观。

标签: ios uitableview alignment


【解决方案1】:

首先你的初始化是错误的,检查header 的值总是nil,试试这个代码,你也可以创建你的自定义标题视图,这是更好的方法

 func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
    let header = UITableViewHeaderFooterView()

        for view in (header.subviews) {
            view.removeFromSuperview()
        }

    let label = UILabel(frame: CGRect(x: 0, y: 25, width: tableView.frame.size.width, height: 50))

    label.text = "Testing"
    label.textColor = UIColor.gray
    label.font = UIFont(name: "Avenir-Book", size: 12)
    header.addSubview(label)
    header.bringSubview(toFront: label)
    return header

}

希望对你有所帮助,问候

【讨论】:

  • @Reiner Melian。我只是想在您的答案中澄清此代码的目的,以便在 (header.subviews) { view.removeFromSuperview() } 中查看!谢谢!
  • @joemalski 这段代码会删除任何以前添加的 UILabel,如果你不这样做,你会得到一系列 UILabel 重叠,无论如何最好的方法是创建一个自定义标题视图来避免这种情况跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-13
  • 2016-03-23
  • 2011-10-28
  • 1970-01-01
  • 1970-01-01
  • 2017-05-30
相关资源
最近更新 更多