【问题标题】:UIView-Encapsulated-Layout-Width / Height Constrained to ZeroUIView-Encapsulated-Layout-Width/Height 约束为零
【发布时间】:2015-10-09 18:53:10
【问题描述】:

关于UITableView 单元格和节页眉/页脚的自动布局存在许多堆栈溢出问题,这些问题涉及UIView-Encapsulated-Layout-Width 约束,UITableView 使用这些约束使其组件的大小正确:

这些约束的目的似乎很明确——它们允许UITableViewUICollectionView 与约束布局交互,并传递其关于单元格(和其他组件)应该有多大的规范。

大多数问题似乎是人们有一组与这些封装约束不兼容的必需约束,也需要0的大小。最可行的答案似乎是将用户定义的约束的优先级降低到999,以便框架可以否决它们。

然而——我有兴趣了解的是为什么UITableView 需要0 的宽度来获取其视图之一? 这是一个错误吗?还是使用不当的结果?还是说得通?

0 的高度限制有时是有意义的,如果单元格从无到有扩展。降低优先级是处理此问题的好方法。但为什么单元格的 宽度0

【问题讨论】:

  • 你找到解决方案了吗?
  • 不,我没有,对不起。

标签: uitableview autolayout


【解决方案1】:

UIView 没有固有大小,因此需要宽度和高度限制。 UIView-Encapsulated-Layout-WidthUIView-Encapsulated-Layout-Height 最初是由 UICollectionView / UITableView 创建的。稍后根据 sizeForItem 或 heightForRowAtIndexPath 委托方法设置约束常量。确保在 cellForItem / cellForRow 方法中创建的 UICollectionViewCell / UITableViewCell 将具有准确的大小。

【讨论】:

  • 因此我认为这很有意义。 :)
猜你喜欢
  • 2014-02-05
  • 2021-01-14
  • 2014-06-12
  • 2021-05-21
  • 1970-01-01
  • 1970-01-01
  • 2015-04-09
  • 2016-03-04
  • 2017-02-01
相关资源
最近更新 更多