无法同时满足约束。可能以下列表中的至少一个约束是您不想要的
Posted
技术标签:
【中文标题】无法同时满足约束。可能以下列表中的至少一个约束是您不想要的【英文标题】:Unable to simultaneously satisfy constraints. Probably at least one of the constraints in the following list is one you don't want 【发布时间】:2020-06-03 15:57:41 【问题描述】:我有一个自定义 xib 文件,并试图在启动表视图时加载图片。但是我得到了这个多重约束的错误。我已经自动设置了 tableviewcell 的行高,组成 xib 视图的三个视图的总和为 408 像素。我还尝试将行高设置为 409,因为错误表示单元格为 408.333 像素,但这并没有帮助。
【问题讨论】:
可以添加约束列表吗?你的一个约束说 stackView.top == UIView.top .. 也许检查那个。 假设您的约束设置正确(如果输出看起来正确,那么您可能会这样做),将 stackView 的底部约束优先级设置为 999 - 这是一个常见问题。 将优先级更改为 999 成功!谢谢你。如果这是一个常见问题,苹果应该看看。 【参考方案1】:这是一个常见问题,尤其是在表格视图单元格中使用UIStackView
s 时。
问题在于,由于自动布局正在“做它的事”,它必须进行多次传递才能计算完整的布局。
当遇到(非固定高度)cell中的stack view时,需要处理stackView的排列子视图的各种高度,table的宽高,cell的高度。此外,因为@2x
缩放设备上的点 使用 2 个像素,而在@3x
缩放设备上它使用 3 个像素,因此必须操作自动布局高度分别约为二分之一和三分之一。
我想我会说,在计算过程中的某个时刻自动布局会向控制台打印错误/警告消息,这并不奇怪。
将堆栈视图的底部约束上的 Priority
设置为 999
允许自动布局,我猜,暂时打破约束而不会发出警告。
那么……这是一个错误吗?还是不可避免?只有苹果知道。 :)
【讨论】:
以上是关于无法同时满足约束。可能以下列表中的至少一个约束是您不想要的的主要内容,如果未能解决你的问题,请参考以下文章