gpt4 book ai didi

ios - UITableViewAutomaticDimension 未按预期工作。 swift

转载 作者:搜寻专家 更新时间:2023-11-01 05:49:26 24 4
gpt4 key购买 nike

读完 Ray Wenderlich guide对于“自动调整表格 View 单元格”以及 this question和答案,我决定向你们所有人寻求帮助。

有一个编程创建的单元格:

import UIKit

class NotesCell: UITableViewCell {
lazy private var cellCaption: UILabel = {
let label = UILabel()

label.translatesAutoresizingMaskIntoConstraints = false
label.font = UIFont.systemFont(ofSize: 20, weight: UIFont.Weight.medium)
label.numberOfLines = 0
label.lineBreakMode = .byWordWrapping

return label
}()

func configure(with note: NotesModel) {
cellCaption.text = note.name

contentView.addSubview(cellCaption)
}

override func layoutSubviews() {
super.layoutSubviews()

NSLayoutConstraint.activate([
cellCaption.topAnchor.constraint(equalTo: contentView.topAnchor, constant: 8),
cellCaption.leadingAnchor.constraint(equalTo: contentView.leadingAnchor, constant: 8),
cellCaption.trailingAnchor.constraint(equalTo: contentView.trailingAnchor, constant: -8),
// cellCaption.bottomAnchor.constraint(equalTo: contentView.bottomAnchor, constant: -8),
cellCaption.bottomAnchor.constraint(greaterThanOrEqualTo: contentView.bottomAnchor, constant: -8)
])

// cellCaption.sizeToFit()
// cellCaption.layoutIfNeeded()
}
}

TableView Controller 在委托(delegate)方法中使用 UITableViewAutomaticDimension:

extension NotesTableViewController {
override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}

override func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}

结果,最长的标题被完整显示,但单元格的高度与所有其他单元格的高度相同。

enter image description here

一些更新!

我已经尝试将以下代码放入 viewDidLoad() 中:

tableView.rowHeight = 44
tableView.estimatedRowHeight = UITableViewAutomaticDimension

启用和禁用委托(delegate)方法。结果是一样的:(

最佳答案

我建议不要使用委托(delegate)方法来满足您的需要。

只需尝试在您的 viewDidLoad 中进行设置:

self.tableView.rowHeight = UITableViewAutomaticDimension;
// set estimatedRowHeight to whatever is the fallBack rowHeight
self.tableView.estimatedRowHeight = 44.0;

这对我总是有效。让我知道是否有帮助:)

关于ios - UITableViewAutomaticDimension 未按预期工作。 swift ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52073107/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com