添加 UILabel 强制 UICollectionViewCell 缩小宽度

Adding UILabel forces UICollectionViewCell to shrink width

我有一个 UICollectionView 单元格,宽度不同。

每个单元格都有一个包含 UILabel 的页脚视图。我希望该标签是全宽的,无论文本有多长,我希望标签始终跨越 UICollectionViewCell.

内页脚视图的宽度

为了尝试这个,我将我的 UILabel 锚定如下 -

到视图的top 到它邻居的 trailing 到视图的trailing

然而效果是,当我的单元格被渲染时,它不再是 sizeForItemAt 中设置的宽度,而是缩小到图标的 trailing 边缘。

我不明白为什么,我是使用 xib 的新手,过去我会以编程方式构建我的视图,但我没有遇到过这个问题。

我的sizeForItem是-

    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
    return .init(width: collectionView.bounds.width / 2, height: 480)
    }

也许您可以尝试使用中心 Y 和中心 X 约束并将标签的前导和尾随约束切换为 >=?这应该会阻止标签破坏内容大小。

您需要将标签的水平 contentHuggingpriority 更改为最低值,以便它可以自由拉伸