我有一个带有多个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),
我觉得这与greaterThanOrEqualTo
约束有关,但如果我用普通的旧equalTo
约束替换它,布局就会变得狂野,标签缩小到只适合一行。
答案 0 :(得分:2)
我在UICollectionView
遇到了类似的问题,我在preferredMaxLayoutWidth
属性和widthAnchor
productNameLabel.widthAnchor.constraint(equalTo: self.widthAnchor, multiplier: 0.6)
productNameLabel.preferredMaxLayoutWidth = self.frame.size.width * 0.6
它应该解决问题。