Ios 为什么tableView单元格不是动态的? 更新:

Ios 为什么tableView单元格不是动态的? 更新:,ios,swift,uilabel,interface-builder,word-wrap,Ios,Swift,Uilabel,Interface Builder,Word Wrap,我发现问题的出现是因为删除日期标签顶部约束时,包装文本变为可见。问题是,日期标签位于另一个文本下。真正的问题可能是单元没有根据约束动态变化吗 我尝试在UILabel中创建要包装的文本(同时尝试根据文本更改单元格) 在.xib中,我设置单元格,执行以下操作: self.notifInfoLabel.numberOfLines = 0 self.notifInfoLabel.lineBreakMode = .byWordWrapping sizeToFit在委托方法中返回单元格之

我发现问题的出现是因为删除日期标签顶部约束时,包装文本变为可见。问题是,日期标签位于另一个文本下。真正的问题可能是单元没有根据约束动态变化吗

我尝试在UILabel中创建要包装的文本(同时尝试根据文本更改单元格)

.xib
中,我设置单元格,执行以下操作:

    self.notifInfoLabel.numberOfLines = 0
    self.notifInfoLabel.lineBreakMode = .byWordWrapping
sizeToFit
在委托方法中返回单元格之前被调用

cell.notifInfoLabel.sizeToFit()//EDIT: turns out this is not needed
    
    return cell
}
configure方法在
viewDidLoad
上调用,就在
.reloadData()

目前,标签中的文本似乎包裹在日期标签下


如何使其按预期工作?

您对自动布局引擎有令人困惑的约束

  • 若文本较小,则需要从图像视图底部留出一些空间,并且

  • 您希望文本是动态的,在这种情况下,标签应该增长

解决方案非常简单

Imageview
的底部约束将=更改为具有750优先级的=

日期的底部约束
=更改为=


希望它有帮助

“我如何才能使它按预期工作?”计划是什么?相反会发生什么?意为“换行(同时我尝试根据文本更改单元格)”,因此,如果文本太长,它将换行到下一行,单元格中的所有其他内容都将根据这一点进行调整,@matt如果你需要额外的信息,请告诉我你知道我如何使个人资料图像居中吗?当前,它没有居中…@局外人您可以尝试删除图像视图的顶部约束,并为图像视图设置居中约束,您可能需要将图像视图的优先级重置为1000bottom@Outsider还有一件事,您可能会遇到图像视图宽度和高度约束的约束中断。为此,可以删除高度约束,添加纵横比1:1和750优先级
func configureTableView() {
    self.tableView.estimatedRowHeight = 82
    self.tableView.rowHeight = UITableView.automaticDimension
}