在Xcode 11中无法将高度设置为Superview

15
我今天升级了Xcode到11,发现Xcode不再允许我从子视图到视图控制器根视图创建比例高度。在之前的Xcode版本中,我能够做到这一点。唯一的解决方法是向控制器添加另一个子根视图并将所有内容移动到下面。这个选项需要重新设计控制器,需要花费太多时间。
你是否遇到同样的问题?
这是新的Xcode 11中的情况。如您所见,没有与父视图相等的高度或宽度选项。

enter image description here

这张图片来自我之前在Xcode中创建的一个视图,其中包含一些约束条件。如您所见,有一个比例约束条件等于ViewController的superview,比例为0.65。
我不想向视图控制器添加中间根视图。这只会浪费时间。有什么好的想法吗?我是否错过了新的魔术按钮或+?

enter image description here


你应该向苹果公司提交一个漏洞报告。 - EmilioPelaez
刚刚向苹果报告了。 - thus
与此同时,我建议下载最新的Xcode 10版本,并在需要应用等宽约束时使用该版本。这相当令人恼火。 - EmilioPelaez
4个回答

17

您可以将视图设置为安全区域

enter image description here

如果您仍然依赖于将其等同于根视图本身,则可以在“属性检查器”中修改约束:

enter image description here


1
感谢您的建议@Eilon,这确实是一个好的解决方案。但我没有使用安全区域,在Xcode 10中也能够做到这一点。如果这是苹果的新要求,那我无话可说。我仍然认为这仍然是一个错误,因为我的先前创建的约束在Xcode 11中得到了支持,当然我没有删除它们,否则我就无法重新创建它们。 - thus
请参阅如何在Interface Builder中创建“宽度等于高度”约束。链接:https://dev59.com/L2Up5IYBdhLWcg3wmYct#16089935 - Top-Master

8
我昨天向苹果发送了一个错误报告,并在苹果论坛中找到了以下讨论。我认为我不是唯一遇到这个问题的开发者。 Xcode 11添加“等宽度到父视图”约束? 我相信苹果很快就会为这个问题创建一个补丁。所以我决定创建一个临时解决方案,通过在根视图下添加一个名为“比例视图助手”的新UIView。我给它的superview设置了trailing、leading、bottom和top约束。现在我能够拖动使等宽度和高度约束到superview。

enter image description here

enter image description here


这真的很令人恼火。这是 Xcode 11 的第二个“破坏性”问题(第一个是在 iOS < 13.2 的 Xcode 11.2 下出现的 UITextField 崩溃)。感谢您的解决方法,我也必须做类似的事情。 - cumanzor

1

1
在“显示文件检查器”选项卡下,Interface Builder文档启用“使用安全区域布局指南”,并将视图的等宽或等高设置为“SafeArea”。

Screenshot


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接