UIScrollView中的UIView不滚动

我正在使用Xcode故事板界面生成器,并创build了一个只有一个子UIView的UIScrollView的视图控制器。 这个孩子UIView有很多标签/button等附加,并超过屏幕尺寸高度明智,但是当我运行我的应用程序,视图不滚动出于某种原因。

这是一个ViewController结构的图片: UIScrollView中

我究竟做错了什么?

您需要设置UIScrollView的contentSize属性。 您可以通过编程方式(例如,在viewDidLayoutSubviews )或在界面构build器的身份检查器面板中的用户定义的运行时属性下执行此操作。

实际尺寸取决于您的内容。 你可以用下面的方法编程计算它:

 CGRect contentRect = CGRectZero; for (UIView *view in self.scrollView.subviews) { contentRect = CGRectUnion(contentRect, view.frame); } self.scrollView.contentSize = contentRect; 

它只会find包含UIScrollView所有子框架的最小CGRect

可以通过程序设置contentSize ,但是你不需要,也不需要。 相反,请确保您有足够的约束,滚动视图的子视图可以计算确切的总宽度和高度。 如果您没有定义足够的约束来执行此操作,Interface Builder将显示错误信息。