有许多关于 UITableView
的自动布局的堆栈溢出问题与 UIView-Encapsulated-Layout-Width
有关的单元格和节页眉/页脚UITableView
的约束用于使其组件的大小正确:
这些约束的目的似乎很明确——它们允许
UITableView
还有UICollectionView
与约束布局接口(interface)并传递其关于单元格(和其他组件)应该有多大的规范。大多数问题似乎是人们有一组 必填 与这些封装约束不兼容的约束也需要
0
的大小.最可行的答案似乎是将用户定义的约束的优先级降低到 999
以便框架可以覆盖它们。然而——我有兴趣了解的是为什么
UITableView
需要 0
的宽度对于它的一种观点? 这是一个错误吗?还是使用不当的结果?还是完全有道理? 0
的高度限制有时是有道理的,如果细胞从无到有扩展。降低优先级是处理此问题的好方法。但是为什么细胞会得到 宽度 的 0
?
最佳答案
UIView 没有固有大小,因此需要宽度和高度约束。
UIView-Encapsulated-Layout-Width 和 UIView-Encapsulated-Layout-Height 最初由 UICollectionView/UITableView 创建。稍后根据 sizeForItem 或 heightForRowAtIndexPath 委托(delegate)方法设置约束常量。确保在 cellForItem/cellForRow 方法中创建的 UICollectionViewCell/UITableViewCell 将具有准确的大小。
关于uitableview - UIView-Encapsulated-Layout-Width/Height 约束为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31520075/