72

使用自动布局时,我无法在 Xcode 11 beta 的视图控制器中设置简单的 UIScrollView。我知道我必须将滚动视图约束到边缘,然后将滚动视图的宽度和高度设置为等于包含滚动视图的整个视图的宽度和高度。但是,当我尝试这样做时,我没有选择设置相等的宽度和高度。

当我从滚动视图右键单击拖动到整个主视图时,我得到以下选项:

  • 通往安全区域的空间
  • 顶部空间到安全区域
  • 到安全区域的尾随空间
  • 底部空间到安全区域
  • 在安全区域水平居中
  • 在安全区域垂直居中

在其他视频中,我似乎没有“等宽”和“等高”选项。

我做错了什么,还是 Apple 改变了滚动视图在 Xcode 11 中的工作方式?

4

9 回答 9

185

在属性的大小检查器(标尺图标)中禁用内容布局指南

在属性中禁用内容布局指南

我遇到了同样的问题,并且通过禁用该选项它消失了。

希望能帮助到你!:)

于 2019-09-25T15:09:55.507 回答
25

我也遇到了这个问题。找到了一个对我有帮助的好指南:

https://useyourloaf.com/blog/scroll-view-layouts-with-interface-builder/

基本上你需要的是 9 个约束(假设你只想垂直滚动):

1-4:ScrollView 到 Superview(顶部、底部、前导、尾随)。确保将其连接到父视图而不是安全区域。

5-8:内容视图到内容布局指南(顶部、底部、前导、尾随)。

  1. 内容视图宽度等于框架布局指南的宽度。
于 2019-09-25T08:53:35.433 回答
2

我也遇到了这个问题(Version 11.0 beta 3 (11M362v))。我通过首先设置布局xcode10然后在xcode11. 目前还没有找到任何官方的说明,证明这是xcode11的问题,不过目前我猜这是xcode11bate的问题。

于 2019-07-24T03:41:00.813 回答
2

在 Xcode-11 的这个滚动问题上花了很长时间。关于这个问题的结论是您必须在添加新约束时选择滚动选项。

您可以参考以下屏幕截图来解决您的问题。

在此处输入图像描述

这些提到的解决方案对我有用。

于 2019-10-02T16:24:10.027 回答
2

禁用属性中的内容布局指南对我有用。

于 2020-05-03T09:45:19.210 回答
1

好吧,我遇到了这个问题,但我找到了解决方案。问题是安全区在此处输入图像描述

  • 在 UIview 中嵌入滚动视图。
  • 给 Top、Bottom、Right 和 Left 0。
  • 现在用这个视图给出滚动视图的约束。
  • 将内容视图的等高和等宽添加到此视图。

父视图自动提供安全区域。您所要做的就是将滚动视图嵌入到 UIview 中,然后将内容视图的等高和等宽赋予该视图。

于 2019-09-25T10:37:36.863 回答
1

@Vadim 的回答稍作调整。没有其他工作,我不想禁用“内容布局指南”。既然苹果启用了它,为什么要禁用它。所以一定有我遗漏的东西或者它是一个错误。

瓦迪姆的回答是:

I stacked with that problem as well. Found a good guide that helped me:
https://useyourloaf.com/blog/scroll-view-layouts-with-interface-builder/
Basically what you need is 9 constraints (assuming you want to scroll only vertically):

1-4: ScrollView to Superview (top, bottom, leading, trailing). Make sure to connect it to parent view and not to safe area.

5-8: Content view to Content Layout guide (top, bottom, leading, trailing)

9: Content view Width equals width to Frame Layout Guide.

一切都好,但它没有工作,

但后来我意识到上面的 6 和 8('内容布局指南'的尾随和底部约束)约束有点奇怪。它们具有正常数值而不是零。就像下图一样。(常量等于滚动视图的宽度和高度)。我将它们更改为零,现在一切正常。

在此处输入图像描述

于 2021-05-01T07:24:45.340 回答
0

对我来说,最初Content Layout Guides默认情况下处于禁用状态ScrollView。所以我只是启用和禁用Content Layout Guides然后错误自动消失。

于 2019-11-20T07:40:00.847 回答
0

Xcode 11+,斯威夫特 5。

我解决了我的问题,我准备了视频代码

于 2019-12-11T06:37:45.060 回答