0

我有一个使用 Storyboards 的 iPad 应用程序。我有一个带有 UIView 的场景,它的上半部分有一个额外的 UIView(我在上面绘制),下半部分有一个 UIScrollView(我需要将它们分开)。我很难弄清楚如何使用从另一个 SO 问题复制的代码来解决 UIView 问题:

CGFloat scrollViewHeight = 0.0f;
for (UIView* view in scrollView.subviews)
{
   scrollViewHeight += view.frame.size.height;
}

[scrollView setContentSize:(CGSizeMake(320, scrollViewHeight))];

按照我阅读上面代码的方式,我应该使用 UIView,但这没有意义,因为 UIView 覆盖了整个“场景/窗口”。使用 UIScrollView 计算 ContentSize 对我来说更有意义。

那么,我应该使用什么?

4

1 回答 1

2

不完全清楚你在问什么。一旦通过标签、属性或其他方法引用了滚动视图,您应该将其内容大小设置为其所有内容组合的宽度和高度(考虑重叠等)。前任。如果您在滚动视图中有一个 600 x 900 点的图像视图,您可以将其大小设置为 600 x 900 CGSize。

这使用循环(也称为快速枚举)遍历滚动视图的所有子视图for...in,将它们的高度加在一起,然后将其用作内容的高度。我认为这不是一个好方法,因为这假设所有子视图都完美地垂直堆叠在一起。它基本上是这样的,“对于我的滚动视图的每个子视图,将它们的高度添加到这个总数中,然后将其用作内容大小的高度。”

管理滚动视图的最简单方法是将所有内容放入一个 UIView 中,将其放置在滚动视图中,然后将滚动视图的内容大小设置为 UIView 的框架。如果您需要对滚动视图中包含的 UIView 的引用,可以将其设置为属性或给它一个标签并使用viewWithTag.

于 2012-11-08T21:28:35.703 回答