设置高度:具有不同大小的自定义Nib的TableViewCells

时间:2018-07-27 18:27:41

标签: swift xcode uitableview uiviewcontroller

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

enter image description here

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

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

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

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

1 个答案:

答案 0 :(得分:0)

1-删除两个textViews并将其替换为标签

2-具有论文约束的标题lbl      top,leading,trailing,.lines = 0

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

当然,您可以保留2个textview,但是必须为每个textview设置一个初始高度,然后在

中执行此操作
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