如何在使用不同的大小类时修复wAny hAny的缺失/冲突约束

Sur*_*gch 6 constraints interface-builder ios size-classes

我想要实现的目标

我想要为所有常规高度垂直排列两个相等高度的视图.但是,对于Compact Heights,我希望水平排列视图.如下图所示:

在此输入图像描述

为此,我在适用于所有内容的wAny-hAny size类中添加了一般约束.然后我为wAny-hRegular和wAny-hCompact大小类添加了特定的约束.这适用于wAny-hRegular和wAny-hCompact(以及在模拟器中测试应用程序),但它让我在wAny-hAny中缺少约束.如果我在wAny-hAny中添加那些缺少的约束,那么我在wAny-hRegular或wAny-hCompact中得到冲突的约束.我不知道如何摆脱错误.

以下是对我所做的更详细的解释.

我是怎么做到的

通过执行以下步骤,我能够在模拟器中获得一些功能.

wAny hAny

在此输入图像描述

对于任何宽度任何高度我设置以下4个约束:

在此输入图像描述

也就是说,我将蓝色固定在顶部和左侧,我将红色固定在右侧和底部.无论使用何种大小类,都始终需要这些约束.

wHny hRegular

在此输入图像描述

对于任何宽度常规高度,我添加了以下4个约束:

在此输入图像描述

也就是说,我将蓝色固定在右侧,红色固定在左侧.我还将红色的上边缘固定在蓝色的下边缘.而我的红色和蓝色相等.这解决了常规高度的所有约束问题.

wAny hCompact

在此输入图像描述

对于任何宽度紧凑高度我添加了以下4个约束:

在此输入图像描述

也就是说,我将蓝色固定在底部,红色固定在顶部.我还将红色的右边缘固定在蓝色的左边缘.我做了红色和蓝色相等的宽度.这解决了Compact Height的所有约束问题.

问题

通过上面的设置,一切都可以在故事板预览中看到(请参见上面的第一张图片),并且在我测试的所有尺寸的模拟器中都能正常工作.

但是,在Interface Builder中,我收到了wAny hAny Size Class的以下Missing Constraint错误:

在此输入图像描述

这有点像catch-22,因为如果我尝试添加缺少的约束,那么我会使用Regular或Compact Size Class约束创建冲突的约束.以Compact为例:

在此输入图像描述

我该如何解决这个问题?

小智 6

我认为您只需要为wAny-hCompact大小类添加特定约束.并确保正确安装了特殊约束.

见下图.

在此输入图像描述