Xcode 11 添加新约束集零:使用设置值而不是默认/标准
Xcode 11 add new constraints set zero: use set value instead of default / standard
我曾经使用自动布局添加新的约束来对超级视图/相对视图进行简单的约束,就像这样(很长一段时间):
然而,最近在更新到最新的 xcode(11.3.3 或只是 11.3/11C29)之后,我遇到了这个奇怪的问题:当我设置常量 = 0 时,它们总是以一个不需要的方式是这样的:
默认值似乎是 20,这让我的观点看起来很不对(0 与 20 相比?)
如果我通过像这样编辑约束来解决这个问题:
然后再修正(图像是编辑约束后,编辑前显示常量= Standard
)
我什至不知道如何描述这个问题,但我该如何解决这个新问题 add new constraint
以使用我的愿望点而不是标准/默认值?
更新:
这似乎只发生在对超级视图进行约束时。不知道如何解决。
2020 年 4 月 1 日更新:
Xcode11.4 修复了这个问题。
似乎是一个错误(不要忘记向 Apple 提交文件)。这是一个简单的解决方法:
当您在 "popover" 中填写数字时,不要键入 0
,而是键入 0.01
。这将防止数字神秘地变为 "Standard"。好吧,所以 0.01
与 0
不一样,但它足够接近以至于你无法分辨,至少你以后不必返回并更改它。
编辑 Apple 表示此错误将在 Xcode 11.4 中修复:
Fixed a bug that prevented entering a 0 constant in the constraint popup editors. (54076090)
虽然@matt 解决方法有效,但我只想补充一点,您可以将其设置为 0.01,然后将其更改为 0,它不会再次更改为标准值。
注:Xcode11.3
此行为似乎已在 Xcode 11.4 上修复:release notes
Fixed a bug that prevented entering a 0 constant in the constraint
popup editors. (54076090)
原答案:
我刚刚也发现了这种行为,我尝试逐一添加约束,Xcode 实际上遵守了 0 值。
我的两分钱。
其实暂时没有办法解决这个问题
但最好的临时解决方案是将带零的约束逐一添加。
我知道这不是解决方案,但对于防止您通过所有约束的临时解决方案,我刚刚发现如果您插入“-0”而不是“0”,您会得到所需的行为,但是你必须每次插入一个约束。
标准时忽略。
添加后点击约束(蓝线)和检查器来约束属性
并将其设置为 0。
对我有用
自 Xcode 11.3.1 起:
我找到的最简洁、最快的解决方案如下:
只需在约束字段中输入 -0
。 Xcode 似乎丢弃了负数并且它的行为正确,这比它读取 0.01
的所有内容都要好。
您可以一次插入所有约束,而不必一次插入一个或稍后去编辑。
Xcode displays the values as this
这看起来确实很愚蠢。 Apple 有没有可能故意让它这样做的原因......?
编辑:这似乎每次都不起作用,这令人沮丧。我刚刚有一个 UIImageView 向 Superview 显示 0,但在视觉上仍处于默认值 (20)。这确实看起来像是 IB 的错误,因为这种行为完全不合逻辑。
编辑 2:现在似乎已修复 - 哇!
仍然遇到此错误 (Xcode 11.3.1)。通过简单地将约束添加为 "standard",然后单击蓝色约束线并将大小检查器下的 "constant" 设置为 0 来修复它。
我曾经使用自动布局添加新的约束来对超级视图/相对视图进行简单的约束,就像这样(很长一段时间):
然而,最近在更新到最新的 xcode(11.3.3 或只是 11.3/11C29)之后,我遇到了这个奇怪的问题:当我设置常量 = 0 时,它们总是以一个不需要的方式是这样的:
默认值似乎是 20,这让我的观点看起来很不对(0 与 20 相比?)
如果我通过像这样编辑约束来解决这个问题:
然后再修正(图像是编辑约束后,编辑前显示常量= Standard
)
我什至不知道如何描述这个问题,但我该如何解决这个新问题 add new constraint
以使用我的愿望点而不是标准/默认值?
更新:
这似乎只发生在对超级视图进行约束时。不知道如何解决。
2020 年 4 月 1 日更新:
Xcode11.4 修复了这个问题。
似乎是一个错误(不要忘记向 Apple 提交文件)。这是一个简单的解决方法:
当您在 "popover" 中填写数字时,不要键入 0
,而是键入 0.01
。这将防止数字神秘地变为 "Standard"。好吧,所以 0.01
与 0
不一样,但它足够接近以至于你无法分辨,至少你以后不必返回并更改它。
编辑 Apple 表示此错误将在 Xcode 11.4 中修复:
Fixed a bug that prevented entering a 0 constant in the constraint popup editors. (54076090)
虽然@matt 解决方法有效,但我只想补充一点,您可以将其设置为 0.01,然后将其更改为 0,它不会再次更改为标准值。 注:Xcode11.3
此行为似乎已在 Xcode 11.4 上修复:release notes
Fixed a bug that prevented entering a 0 constant in the constraint popup editors. (54076090)
原答案:
我刚刚也发现了这种行为,我尝试逐一添加约束,Xcode 实际上遵守了 0 值。
我的两分钱。
其实暂时没有办法解决这个问题
但最好的临时解决方案是将带零的约束逐一添加。
我知道这不是解决方案,但对于防止您通过所有约束的临时解决方案,我刚刚发现如果您插入“-0”而不是“0”,您会得到所需的行为,但是你必须每次插入一个约束。
标准时忽略。
添加后点击约束(蓝线)和检查器来约束属性 并将其设置为 0。
对我有用
自 Xcode 11.3.1 起:
我找到的最简洁、最快的解决方案如下:
只需在约束字段中输入 -0
。 Xcode 似乎丢弃了负数并且它的行为正确,这比它读取 0.01
的所有内容都要好。
您可以一次插入所有约束,而不必一次插入一个或稍后去编辑。
Xcode displays the values as this
这看起来确实很愚蠢。 Apple 有没有可能故意让它这样做的原因......?
编辑:这似乎每次都不起作用,这令人沮丧。我刚刚有一个 UIImageView 向 Superview 显示 0,但在视觉上仍处于默认值 (20)。这确实看起来像是 IB 的错误,因为这种行为完全不合逻辑。
编辑 2:现在似乎已修复 - 哇!
仍然遇到此错误 (Xcode 11.3.1)。通过简单地将约束添加为 "standard",然后单击蓝色约束线并将大小检查器下的 "constant" 设置为 0 来修复它。