iOS:带动态内容的UIScrollView

时间:2015-02-02 13:28:21

标签: ios uiscrollview storyboard autolayout

我在故事板中的scrollView中列出了所有的containerViews和子视图,每个都有一个顶部,底部,前导和尾部引脚,还有一个高度和一个垂直间距约束。从服务器加载信息并将信息填充到我的UILabel后,我将所有UILabel(numberOfLines = 0)调用sizeToFit。然后我相应地重置所有容器视图的高度,最后重置我的scrollView及其contentView的高度。

但是,当我运行程序时,scrollView没有按预期垂直扩展。我做了一个NSLog查询我所有UILabel的frame.size.height,它们被正确扩展。但不是UILabels的scrollView和containerViews。

我是否必须调用一些方法来要求应用根据新的高度限制重新布局视图和子视图?那个神奇的方法是什么?

需要帮助!

1 个答案:

答案 0 :(得分:1)

滚动视图的内容大小需要超过视图框架的大小。来自Apple Docs:

  

UIScrollView类支持显示大于应用程序窗口大小的内容。

如果您需要设置滚动视图的大小,您可以根据元素的数量(在您的情况下为UILabels)以编程方式设置内容大小。

又快又脏:

[self.scrollView setContentSize:CGSizeMake(yourScrollViewWidth, theLabelheight * yourArrayOfObjects.count)];

请记住,这样做不会随着旋转或任何其他AutoLayout魔法而调整。