表视图标题与单元格重叠



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

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

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

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

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
}

最新更新