ios - 在 UICollectionViewCell 上设置约束的问题

标签 ios swift cocoa autolayout constraints

我创建了一个 UICollectionViewCell (.xib),我只是想在那里添加一个标签和一些简单的约束,例如:

Simple Constraints

但是,这样做会搞砸一切。无论我在 UICollectionViewDelegateFlowLayout 上选择的大小如何,单元格都将始终使用标签的大小!我在这里做错了什么?我是否应该不对 CollectionViewItems 使用约束,而是 translatesMaskIntoConstraints = true? 谢谢!

编辑:这是我所期望的: Expected Result

这就是我实际拥有的(一旦我添加了约束): Result with constraints

edit2: 已修复!通过将标签的内容拥抱优先级更改为 10(例如,或更低)。但是......如果 View 中没有其他约束,为什么会这样呢?如果有人能回答它,我将不胜感激,因为我只能回答这个问题并提供这个解决方案,但我无法解释为什么它会修复它,所以无论如何这都不是一个正确的答案。

最佳答案

您有两种方法:您可以委托(delegate)一个单元格来计算自己的高度,或者您可以为高度设置固定大小。

如果你想要第一种情况,请阅读其他related answers

如果你想要固定尺寸,你应该在标签上做一个固定的高度。 Label 正在根据 contentSize 计算自己的大小,因此在单元格的固定大小问题上您的约束失败了

关于ios - 在 UICollectionViewCell 上设置约束的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58788131/

相关文章:

cocoa - 如何从 NSObject 实例关闭窗口

ios - 我们如何在 iPhone 中检测人脸

ios - 将 RxDataSource 添加到 UICollectionView 时 Xcode 崩溃

ios - UIImagePickerController 在设备旋转时旋转 iOS 7

ios - Swift:如何从字典中删除空值?

objective-c - Cocoa - 找出 NSTabView 何时更改其选项卡

macos - OS X 应用程序的自动释放池在哪里创建和耗尽?

ios - StatusBar 不遵守应用程序的方向和旋转

swift - 为什么协议(protocol)中的仅获取属性要求不能通过符合的属性来满足?

swift - 为什么 Swift 中的公共(public)类/结构需要显式公共(public)初始化程序?