无法使UIScrollView正常工作

时间:2014-01-26 12:48:24

标签: ios objective-c uiview uiviewcontroller uiscrollview

这是一个故事板应用。我在默认情况下在视图控制器中的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

2 个答案:

答案 0 :(得分:1)

如果我正确理解了您的代码(视图的屏幕截图会有所帮助),您可以将scrollviews框架设置为视图的完整大小,然后将contentSize设置为视图的大小。仅当contentSize大于其大小时,滚动视图才会滚动。

答案 1 :(得分:0)

这可能不是您问题的完整答案,但它肯定会帮助您和其他人。

要设计尺寸大于UIScrollView尺寸的视图,最好将UIView作为子视图UIScrollView并将所有内容放在上面UIView并最终将UIView作为UISCrollView的子视图。最后,您可以将UIView的大小设置为UISCrollView的内容大小。

干杯。 :)