iOS-UIScrollView无法滚动,尽管显示了滚动条

时间:2018-11-19 11:54:15

标签: ios objective-c xcode uiscrollview interface-builder

我有一个Scroll View,并且在其中有一个名为“ Content View”的UIView,其中包含我的所有元素。

enter image description here

“内容”视图等于“滚动”视图的顶部,底部,前导和尾随。还要等于其宽度和高度。

我还添加了self.scrollView.contentSize = self.contentView.frame.size 在ViewDidLoad中。

滚动时,我可以看到滚动条在侧面上下移动,根据滚动条,页面长度似乎正确,但是内容本身却无法滚动,如您在此处看到的那样:

enter image description here

我在做什么错了?

谢谢!

4 个答案:

答案 0 :(得分:1)

  

“内容”视图等于“滚动”视图的顶部,底部,前导   和尾随。 也要使其宽度和高度相等。

您需要删除宽度和高度限制。顶部,底部,前导和尾随应保持不变。另外,从viewDidLoad中删除该contentSize设置。

我假设您要垂直滚动。在这种情况下,您应该将contentView的宽度约束设置为等于View的宽度(不是scrollView的宽度,而是View的宽度,它是层次结构的根)。

如果正确设置了contentView子级的垂直约束,那应该可以解决问题。

答案 1 :(得分:0)

我要做的第一件事是user3199693说的:从viewDidLoad中删除该行(这使我看到错误的滚动条消失了)。正如他所说,我还将contentView的宽度约束设置为等于top View的宽度。

那很好,但是仍然不能解决问题。所做的帮助等于内容视图的高度和顶视图。

here得到了这个主意。

答案 2 :(得分:0)

我遇到了这个问题(或非常类似的问题),滚动条会滚动,但是内容没有。这让我发疯了一段时间,因为它似乎滚动视图中的所有内容在Interface Builder中都受到了正确的约束。最后,我注意到,scrollview容器中的顶部项目(容器=包含我所有视图的UIScrollView内部的视图)通过与scrollview外部的视图对齐而被限制在顶部。

一旦我从ScrollView中删除了使顶部与外部视图对齐的约束,而是将其与UIScrollView中的主容器对齐,则一切正常。希望这有助于防止某人遇到此问题,而其他提到的解决方案不能解决该问题。

答案 3 :(得分:0)

默认情况下,滚动视图启用了内容布局指南。因此,当我们将内容视图(滚动视图内的主视图)固定在所有 4 个边且等宽和等高(优先级较低)上时,需要 Frame Layout Guide 作为顶部约束,这是问题的根本原因,只有滚动指示器移动,而不是整个内容。

您可以从滚动视图大小检查器中取消选中内容布局指南。或者,如果您想使用它,请将顶部约束更改为 Content Layout Guide 而不是 Frame Guide Layout 并且它很有魅力。请参考以下截图。

enter image description here