我正在请求您帮助创建具有自动高度的表格视图
我的目标是创建带有一些数据(如字符串)的tableView。 但就我而言,我可以有4、7或22个字符串。因此,我的目标是列出所有字符串,而不在此TableView中滚动,而是在所有主滚动视图中滚动
我知道如何获取自动行单元格的高度,但是似乎我必须为表格视图设置高度或底部约束,这不是我的目标。
如果您知道CCS,则目标是具有“ height:auto;”之类的渲染。就是这样。
希望给我读一些好消息。 谢谢
答案 0 :(得分:0)
在情节提要中设置初始高度限制,并将插座连接到情节提要。在获取表视图数据并调用self.tableView.reloadData()
之后,尝试:
self.tableViewHeightConstraint.constant = self.tableView.contentSize.height
答案 1 :(得分:0)
对于在UIScrollView
内包裹表格视图,然后设置表格视图的高度并获取表格视图高度的出口,
@IBOutlet weak var heightOfTable: NSLayoutConstraint!
此后,我们需要每次观察tableview的高度时,为此,请在您的UIViewController
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
tableView.addObserver(self, forKeyPath: "contentSize", options: .new, context: nil)
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
tableView.removeObserver(self, forKeyPath: "contentSize")
}
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
if keyPath == "contentSize" {
heightOfTable.constant = min(tableView.contentSize.height, UIScreen.main.bounds.height * 0.6)
}
}
答案 2 :(得分:0)
您必须在heightForRow事件中使用UITableView.automaticDimension。另外,您还必须在viewDidLoad中设置estimateRowHeight。
在此之前,您必须设计表格视图单元,而对标签不施加任何高度限制。 (我认为您正在使用标签。),还必须将标签的lineCount设置为0。
完成所有这些操作后,必须完成。如果您愿意,可以共享您的代码,然后我可以为您提供帮助。