使用自动布局时,无法在Xcode 11 beta的视图控制器中设置简单的UIScrollView。我知道我必须将滚动视图限制在边缘,然后将滚动视图的宽度和高度设置为等于包含滚动视图的整个视图的宽度和高度。但是,尝试设置宽度和高度相等时,我没有选择。
当我从滚动视图中右键单击并拖动到整个主视图时,我得到以下选项:
在其他视频中,我似乎没有一个“等宽”和“等高”选项。
我是在做错什么,还是Apple改变了Xcode 11中滚动视图的工作方式?
答案 0 :(得分:72)
答案 1 :(得分:9)
我也遇到了这个问题。 找到了对我有帮助的好指南:
https://useyourloaf.com/blog/scroll-view-layouts-with-interface-builder/
基本上您需要9个约束(假设您只想垂直滚动):
1-4:滚动查看到超级视图(顶部,底部,前导,尾随)。确保将其连接到父视图而不是安全区域。
5-8:“内容布局”指南的内容视图(顶部,底部,开头,结尾)。
答案 2 :(得分:1)
答案 3 :(得分:1)
在属性中禁用内容布局指南对我有用。
答案 4 :(得分:0)
我也遇到了这个问题(Version 11.0 beta 3 (11M362v))
。通过首先在xcode10
中设置布局,然后在xcode11
中运行布局,解决了这个问题。我尚未找到任何官方说明,证明这是xcode11的问题,但就目前而言,我猜这是xcode11
贝特的问题。
答案 5 :(得分:0)
好吧,我遇到了这个问题,但是找到了解决方案。 问题是安全区域。
父视图会自动提供安全区域。您所要做的只是将滚动视图嵌入到UIview中,然后向该视图提供相等高度和相等宽度的内容视图。
答案 6 :(得分:0)
对我来说,Content Layout Guides
最初是ScrollView
的默认状态。因此,我只是启用和禁用了Content Layout Guides
,然后错误自动消失了。
答案 7 :(得分:0)
答案 8 :(得分:0)
@Vadim 的回答稍作调整就起作用了。 没有其他工作,我不想禁用“内容布局指南”。既然苹果启用了,为什么要禁用它。所以一定是我遗漏了什么或者是一个错误。
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(“内容布局指南”的尾部和底部约束)约束有点奇怪。它们具有正常数值而不是零。就像下图。 (常量等于滚动视图的宽度和高度)。我将它们更改为零,现在一切正常。