为了确保我的应用程序的显示在所有尺寸下都正确显示,我显然在自动布局约束下苦苦挣扎。
在我的一个ViewContoller中,有一个UIView(ContainerView),可以通过编程方式调整大小,以保持比例设置,而不管屏幕大小如何。
在ContainerView中,有一个StackView,其中3个UIView均以间距填充。
所有这些视图都已添加到情节提要中。
StackView约束位于CenterX,CenterY和长宽比上 StackView中的UIViews约束仅基于长宽比
在ViewDidLoad上调整ContainerView的大小时,它会触发StackView的重新计算,以再次保持正确的比例。
我设法使它看起来正确,但是当我触发代码以调整StackView的大小和位置时,我在打印窗口中收到以下消息,我无法对其进行解密,或者至少我不知道如何进行更正。
[LayoutConstraints]无法 同时满足约束条件。
可能至少有一个 以下列表中的约束是您不想要的约束。
尝试这个: (1)查看每个约束,并尝试找出不存在的约束 期望; (2)找到添加了不必要约束的代码或 约束并修复它。 ( “”, “”, “”, “”, “”, ” (活动)>“, ” (活动)>“, “”, “”, “”, “”, “”, “”, “”, “”, “”, “”, ” (活动)>“, ” (活动)>“, “”, ” (活动,名称:'|':UIStackView:0x7fe3f9005e20)>“, ” (活动)>“, ” (活动)>“, ” (活动)>“, “”, “”, “ = UIView:0x7fe3f9006b70.bottom(活动)>”, “”, “”)将尝试通过打破约束来恢复
在UIViewAlertForUnsatisfiableConstraints处创建符号断点 在调试器中捕获它。中的方法 UIView中列出的UIConstraintBasedLayoutDebugging类别,在 可能也有帮助。 2018-11-21 15:36:38.382957 + 0100 RTS游戏同伴[16230:4711284] [LayoutConstraints]无法同时满足约束。 以下列表中的约束中至少有一个是 你不要试试这个:(1)查看每个约束并尝试 找出你不期望的东西; (2)找到添加了 不必要的约束或约束并进行修复。 ( “”, “”, “”, “”, “”, ” (活动)>“, ” (活动)>“, “”, “”, “”, “”, “”, “”, “”, “”, “”, “”, ” (活动)>“, ” (活动)>“, “”, ” (活动,名称:'|':UIStackView:0x7fe3f9005e20)>“, ” (活动)>“, ” (活动)>“, ” (活动)>“, “”, “”, “ = UIView:0x7fe3f9006ed0.bottom(活动)>”, “”, “”)
将尝试通过打破约束来恢复
在UIViewAlertForUnsatisfiableConstraints处创建符号断点 在调试器中捕获它。中的方法 UIView中列出的UIConstraintBasedLayoutDebugging类别,在 可能也有帮助。 2018-11-21 15:36:38.427959 + 0100 RTS游戏同伴[16230:4711284] [LayoutConstraints]无法同时满足约束。 以下列表中的约束中至少有一个是 你不要试试这个:(1)查看每个约束并尝试 找出你不期望的东西; (2)找到添加了 不必要的约束或约束并进行修复。 ( “”, “”, “”, “”, “”, ” (活动)>“, ” (活动)>“, “”, “”, “”, “”, “”, “”, “”, “”, “”, “”, ” (活动)>“, “”, “”, ” (活动)>“, ” (活动)>“, ” (活动)>“, “”, “”, “”, “”, “”)
将尝试通过打破约束来恢复
在UIViewAlertForUnsatisfiableConstraints处创建符号断点 在调试器中捕获它。中的方法 UIView中列出的UIConstraintBasedLayoutDebugging类别,在 可能也有帮助。
我用来调整StackView大小/位置的代码是对以下内容的扩展:
任何帮助将不胜感激...
谢谢!
答案 0 :(得分:0)
我终于解决了这个问题。
实际上-编译器告诉我的是,存在自动布局约束相互竞争的问题。 我在给定的布局组成中设置了约束,后来尝试添加更多的约束,因为自动布局不会给我每台设备期望的结果,但是编译器告诉我,并非所有的约束都可以满足,因为有些约束完全不同对于相同的锚点。
我删除了所有约束并逐个测试它们,直到找到正确的约束集。
这听起来似乎微不足道,但这仅仅是关于它。