UITableViewCell 和 AutoLayout 打破约束的两种状态

Two states on UITableViewCell and AutoLayout breaking constraints

我正在尝试为 UITableViewCell 设置两种不同的状态,但是当我更改单元格的大小时,此更改打破了许多限制 AutoLayout。 这两个状态是:

初始状态是展开的,但是当我减少行的 height 以更改为折叠状态时,许多约束(主要是 UIView BUILabels)打破 AutoLayout

步骤:

  1. 点击单元格,改变单元格的大小
  2. 隐藏UIViewB
  3. 重新加载UITableView

有没有什么方法或方法可以避免破坏约束?也许是两种不同的电池设计?

谢谢!

在您的情况下,更好的解决方案是使用两个具有不同标识符的单元格 - 一个包含视图 A,另一个包含视图 A、B。然后你可以.dequeueReusableCell(withIdentifier: %CELL_A_OR_CELL_B_IDENTIFIER%, for: indexPath)根据你的需要。

不太合适的解决方案是使用堆栈视图或调整您的约束。在这两种情况下,避免冲突和防止不正确布局的唯一方法是正确设置约束优先级。我会尝试将圆圈优先级的约束设置为小于 1000(如 990)