gpt4 book ai didi

swift - 设置高度: TableViewCells with custom Nib that are different sizes

转载 作者:行者123 更新时间:2023-11-30 11:18:15 26 4
gpt4 key购买 nike

我有一个 TableViewController,它在标识符“customCell”下有一个自定义 TableViewCell。下面是单元的配置以及与其连接的 IBOulet 的图像:

enter image description here

单元从我的后端获取信息并呈现它。描述 TextView (刚刚注意到我不小心将其命名为descriptionLabel)不允许滚动,因此它会根据其所保存的内容进行扩展。正在从数据库正确处理数据库,并将其显示在应用程序上。 唯一的问题是单元格的高度不正确。在通过其标识符注册该单元格的 TableViewControl 上,我使用 heightForRow 中的 UITableViewAutomaticDimension 自动设置单元格的高度:

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

但这也不起作用。 *唯一有效的是当我将每个单元格的高度设置为标准值(例如 200)时。这对我不起作用,因为由于 textView 的长度,每个单元格的高度都会不同。

如何设置自定义 Nib (tableViewCell) 的高度,以便它根据其中的内容进行调整,而不是将高度设置为特定值?

最佳答案

1-删除两个textView并用标签替换它们

2- 具有这些约束的标题 lbl 顶部、前导、尾随 , .lines = 0

3- 具有这些约束的描述 lbl 底部,前导,尾随到 contentView,标题 lbl 的顶部到底部,.lines = 0

当然,您可以保留 2 个 TextView ,但您必须为每个 View 指定一个初始高度,并在

中执行此操作
override func layoutSubviews() {
super.layoutSubviews()
self.titleTvHeight.constant = self.titleTv.contentSize.height
self.desTVheight.constant = self.desTv.contentSize.height
}

//

不要忘记在 VC 的 viewDidLoad 中设置它

 tableView.estimatedRowHeight = 200     
tableView.rowHeight = UITableViewAutomaticDimension

无论如何,你可以删除heightForRowAt

关于swift - 设置高度: TableViewCells with custom Nib that are different sizes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51563612/

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