这是一个故事板应用。我在默认情况下在视图控制器中的UIScrollView
顶部添加了UIView
。然后我在滚动视图上添加了一些UI元素。在设计了Scroll视图的可视部分后,使用它的手柄我将它垂直拉伸并将其向上推一点,以便我可以看到该部分来设计屏幕的其余部分。完成后,我将滚动视图放回到适合视图的位置。请注意,我没有调整滚动视图的大小以匹配IB视图的大小。
然后我将所有4个约束添加到滚动视图(前导和尾随空间到superview,顶部和底部空间到superview)。然后我选择UIView
,打开尺寸检查器并将底部空间更改为superview的值为0.这会自动调整UIScrollView
的大小以适应视图控制器。
然后我在viewDidLoad
方法中添加了以下代码行。
self.scrollView.contentSize = CGSizeMake(self.view.frame.size.width, self.scrollView.frame.size.height);
self.scrollView.frame = self.view.frame;
但这不起作用。 UIScrollView
不会滚动。是的,滚动已启用。
有谁能告诉我这里可能缺少什么?
谢谢。
修改
我发现了我的一个旧项目here。它利用我刚才解释的方式,它的工作原理!不知道为什么它不再存在。
我还在这里添加了一个demo project。
答案 0 :(得分:1)
如果我正确理解了您的代码(视图的屏幕截图会有所帮助),您可以将scrollviews框架设置为视图的完整大小,然后将contentSize设置为视图的大小。仅当contentSize大于其大小时,滚动视图才会滚动。
答案 1 :(得分:0)
这可能不是您问题的完整答案,但它肯定会帮助您和其他人。
要设计尺寸大于UIScrollView
尺寸的视图,最好将UIView
作为子视图UIScrollView
并将所有内容放在上面UIView
并最终将UIView作为UISCrollView
的子视图。最后,您可以将UIView的大小设置为UISCrollView
的内容大小。
干杯。 :)