首次加载时某些单元格的 UITableViewCell 高度错误

Wrong UITableViewCell height for some cells at first loading

我正在使用 UITableViewAutomaticDimension 计算我的 table 视图单元格的高度。这对我来说可以。但对于某些单元格,返回的高度是 44 而不是动态计算高度。但是在向上滚动并回头看同一个单元格时,高度会被完美地重新计算。所以我想我没有任何错误的约束,因为在我手动滚动并更正所有单元格高度之后,之后没有显示约束破坏警告。

编辑

下面给出的是图片截图(裁剪的时候乱七八糟,但是从个人资料图片可以看出问题。)。第一个单元格高度计算正确。但其余的都是错误的。

我添加了以下内容,一切正常。

(CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath {
    return UITableViewAutomaticDimension;
}

在我的例子中,layoutMarginsGuide 顶部和底部锚点出了点问题。我将它用于单元格子视图并为其子视图设置 preservesSuperviewLayoutMargins = true 。这导致系统第一次尝试使用 systemLayoutSizeFitting 计算单元格高度时出现错误。