Ios 滚动前第一节第一行的tableview行高错误

Ios 滚动前第一节第一行的tableview行高错误,ios,swift,uitableview,Ios,Swift,Uitableview,我正在生成包含stackView的单元格的tableView。一切正常,但第一部分的第一行在滚动前的高度错误。我使用的是cell.selectionStyle=.none,在滚动之前,它在错误的单元格中选择了.default。如何解决这个问题 DispatchQueue.main.async{ self.tableView.setNeedsLayout() self.tableView.layoutSubviews() self.tableView.layoutIfNeeded()

我正在生成包含stackView的单元格的tableView。一切正常,但第一部分的第一行在滚动前的高度错误。我使用的是
cell.selectionStyle=.none
,在滚动之前,它在错误的单元格中选择了.default。如何解决这个问题

DispatchQueue.main.async{
  self.tableView.setNeedsLayout()
  self.tableView.layoutSubviews()
  self.tableView.layoutIfNeeded()
  self.tableView.reloadData()
} 
^
viewDidLoad()
中是否有。这没有影响

还尝试了cell.layoutifneed(),但仍然没有结果


单元格高度为UITableViewAutomaticDimension

在了解了
UITableViewAutomaticDimension
之后,我实现了:

所有多行
UILabel
在重新使用单元格之前必须具有指定的值。通过在
awakeFromNib()
方法中为单元格类中的每个label.text提供
nil
或空字符串(
“”
)值,可以轻松完成此操作

例如:

class HeaderTeacherTableViewCell: UITableViewCell {
    @IBOutlet weak var multilineLabel: UILabel!
    override func awakeFromNib() {
        super.awakeFromNib()
        multilineLabel.text = nil
    }
}

多行标签的意思是
UILabel()
具有0行数。

您可以在设置单元格高度的位置显示代码吗?您必须根据截面和单元格在索引中设置heightForRow中的单元格高度,然后您将使用autolayout获得所需的单元格高度?如果是,则应为行高和估计行高使用UITableViewAutomaticDimension。如果您没有使用自动布局,您应该手动计算高度。对不起,更新了问题。不仅是高度问题。它也不接受selectionStyle,所以还有一些问题