gpt4 book ai didi

ios - 为什么我会收到一条错误消息,指出自动布局为 'Unable to simultaneously satisfy constraints.'?

转载 作者:行者123 更新时间:2023-12-01 16:30:29 25 4
gpt4 key购买 nike

enter image description here我正在尝试在所有 4 面固定一个按钮,以将按钮对象固定在我任意放置的确切位置,但是当我运行它时出现以下错误。任何见解或帮助将不胜感激。

Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints)
(
"<_UILayoutSupportConstraint:0x9f494b0 V:[_UILayoutGuide:0x9f40370(20)]>",
"<_UILayoutSupportConstraint:0x9f3b6c0 V:|-(0)-[_UILayoutGuide:0x9f40370] (Names: '|':UIView:0x9f3feb0 )>",
"<_UILayoutSupportConstraint:0x9f418e0 V:[_UILayoutGuide:0x9f407c0(0)]>",
"<_UILayoutSupportConstraint:0x9f18010 _UILayoutGuide:0x9f407c0.bottom == UIView:0x9f3feb0.bottom>",
"<NSLayoutConstraint:0x9f40f10 V:[UIButton:0x9f40f40'Button']-(211)-[_UILayoutGuide:0x9f407c0]>",
"<NSLayoutConstraint:0x9f47ab0 V:[_UILayoutGuide:0x9f40370]-(539)-[UIButton:0x9f40f40'Button']>",
"<NSLayoutConstraint:0xa157b10 'UIView-Encapsulated-Layout-Height' V:[UIView:0x9f3feb0(568)]>"
)

Will attempt to recover by breaking constraint
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.

最佳答案

即使@AdrianB 对我在他的回答中的评论也有基本的了解,我将在这里详细解释:

假设 View 的大小为 200 x 200,按钮为 100 x 20。(值仅用于举例)。所以我。例如,您将其放置在左侧空间 80、右侧空间 20 (80+100+20=200) 和顶部空间 100、底部空间 80。 (100+20+80=200)。

现在 View 的大小发生了变化。它的宽度为 300。您对左右的约束仍然有效。所以边框仍然是 80 和 20。实现这一点的唯一方法是给按钮设置 200 的宽度。(80+200+20=300)。好的,也许是一个看起来很有趣的按钮,但这有效。

但是,如果 View 的高度变为 300,则在垂直方向上确实变得很难。按钮必须在垂直方向上增长到 120。这是顶部和底部空间保持有效的唯一方法。我不认为按钮是那样的。

但是,当 View 的高度小于 180 时,这是不可能的,因为所有空间都被您的约束(顶部 = 100 + 底部 = 80 = 180)占用,因此底部不再有空间。它的高度变为负数。

那就是问题所在。

现在到解决方案:

不要在自动布局中放置对所有四个边缘都具有硬约束的按钮。自动布局用于更改 super View 大小。在这种情况下,你所做的一切都是没有意义的。

关于ios - 为什么我会收到一条错误消息,指出自动布局为 'Unable to simultaneously satisfy constraints.'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31883513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com