我有一个使用Storyboard的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对我来说更有意义。
那么,我应该使用什么?
答案 0 :(得分:2)
不完全清楚你在问什么。通过标记,属性或其他方法引用滚动视图后,应将其内容大小设置为所有内容组合的宽度和高度(计算重叠等)。防爆。如果您在滚动视图中有一个600 x 900点的单个图像视图,则将其大小设置为600 x 900 CGSize。
使用for...in
循环(又名快速枚举)遍历滚动视图的所有子视图,将它们的高度加在一起,然后将其用作内容的高度。我不认为这是一个很好的方法,因为这假设所有的子视图完全叠加在一起。它基本上是,“对于我的滚动视图的每个子视图,将它们的高度添加到此总数中,然后将其用作内容大小的高度。”
管理滚动视图的最简单方法是将所有内容打到一个UIView中,将其放在滚动视图中,然后将滚动视图的内容大小设置为UIView的框架。如果您需要对滚动视图中包含的UIView的引用,您可以将其设置为属性或为其指定标记并使用viewWithTag
。