0

我有一个带有表格视图的视图控制器。Tableview 有一个表格视图标题和动态单元格。我添加了一个 UIView 作为表视图标题,它有多个动态高度的标签。一切正常。

但是,当视图的大小(用作表格视图标题)由于视图中使用的标签的额外高度(由于额外的内容而扩展)而扩展时,就会出现问题。

结果,表格视图的上部单元格被标题视图隐藏或重叠。有人可以帮我解决这种情况吗?所有这些都是使用故事板完成的。

4

1 回答 1

0

在情节提要中添加表格视图标题时,您无法更改它的高度。return UITableView.automaticDimension以编程方式和方法创建表视图标题heightForHeaderInSection

override func viewDidLoad() {
    super.viewDidLoad()
    tableView.estimatedSectionHeaderHeight = 100
    tableView.sectionHeaderHeight = UITableView.automaticDimension
}

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

    let lbl = UILabel()
    lbl.text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum"
    lbl.numberOfLines = 0
    lbl.lineBreakMode = .byWordWrapping
    lbl.translatesAutoresizingMaskIntoConstraints = false
    header.addSubview(lbl)

    header.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|-(10)-[lbl(>=30)]-(10)-|", options: [], metrics: nil, views: ["lbl":lbl]))
    header.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|-(30)-[lbl]-(30)-|", options: [], metrics: nil, views: ["lbl":lbl]))
    return header
}
override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
    return UITableView.automaticDimension
}
于 2019-04-27T14:29:28.683 回答