[英]reloadData of UITableView with Dynamic cell heights unwanted scroll
[英]Problem with dynamic UITableView cell heights
我希望我的單元格具有動態高度。 我使用下面的代碼:
let tableView: UITableView = {
let view = UITableView()
view.register(MyTableViewCell.self, forCellReuseIdentifier: MyTableViewCell.reuseIdentifier)
view.rowHeight = UITableView.automaticDimension
view.estimatedRowHeight = 150
view.separatorStyle = .singleLine
view.isScrollEnabled = true
return view
}()
該單元格僅包含 label ,它被賦予一個約束 - 在單元格內居中:
private func setupView() {
addSubview(titleLabel)
titleLabel.snp.makeConstraints { maker in
maker.center.equalToSuperview()
}
}
標簽的定義:
let titleLabel: UILabel = {
let label = UILabel()
label.textColor = .black
label.textAlignment = .center
label.numberOfLines = 0
return label
}()
然后在 cellForRowAt 方法中分配標簽的文本,但在每種情況下都會返回相同的高度,即使文本有時是 4 行並且單元格的高度應該被拉伸。 我在上面的代碼中缺少什么? 謝謝
您應該給 label 頂部、底部、前導和尾隨約束以使高度動態
單元格的內容需要設置自動布局約束,以便從單元格的頂部到底部存在約束連接,以便自動尺寸工作。
private func setupView() {
addSubview(titleLabel)
titleLabel.snp.makeConstraints { maker in
maker.edges.equalToSuperview()
//or add .top, .left, .right, .bottom constraints individually,
//if you need to add .offset() to each of the sides
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.