重用后集合视图单元格中的多行标签中断

Mat*_*att 3 ios autolayout uicollectionviewcell swift

我有一个带有多个 UI 元素的自定义 UICollectionViewCell,在代码中使用 AutoLayout 设置进行布局。

在较大的设备(iPhone 6 及更高版本)上,一切都按预期工作。

然而,在较小的设备上,多行 UILabel 会中断,但仅(似乎)在重用后才会中断。

在初始显示时,第一个单元格如下所示:

单元格的初始显示

在单元格滚动出屏幕并重新打开后,它看起来像这样:

单元格的第二个显示

这些是在标签上设置的约束:

    descriptionLabel.centerXAnchor.constraint(equalTo: firstButton.centerXAnchor),
    descriptionLabel.leadingAnchor.constraint(equalTo: otherLabel.leadingAnchor),
    descriptionLabel.topAnchor.constraint(equalTo: firstButton.bottomAnchor, constant: 15),
    secondButton.topAnchor.constraint(greaterThanOrEqualTo: descriptionLabel.bottomAnchor, constant: 20),
Run Code Online (Sandbox Code Playgroud)

我觉得这与greaterThanOrEqualTo约束有关,但如果我用一个普通的旧equalTo约束替换它,布局就会变得疯狂,标签缩小到只适合一行。

kam*_*soc 5

我遇到过类似的问题UICollectionView,我在preferredMaxLayoutWidth财产和widthAnchor

productNameLabel.widthAnchor.constraint(equalTo: self.widthAnchor, multiplier: 0.6)
productNameLabel.preferredMaxLayoutWidth = self.frame.size.width * 0.6
Run Code Online (Sandbox Code Playgroud)

它应该解决问题。