2014-03-26 49 views
0

我迫使的问题是: 我有1个大的scrollView,我必须添加5个子视图编程 当我不知道子视图会有什么高度:(iOS为具有动态高度的滚动视图添加子视图

有一些API这样做呢? 或我必须手动算子视图的高度,并与CGRectMake 通过计算尺寸来计算出添加它们?

+0

当你说你不知道子视图是什么高度时,你的意思是什么? (内容是从网上获取的,需要等待吗?) 使用CGRectGetMaxY(rect)方法来查找最大点并设置下一个子视图的框架原点。 – nsuinteger

+0

加上几个'frame.size.height'的问题究竟是什么?如果你需要一个API来做到这一点,你以后会遇到一些困难的时候 –

+0

我会去'CGRectMake'解决方案,但是我会继承它以使所有这些都可以重用。另一个选择是找到一些垂直线性布局管理器实现,并使用它来计算布局视图的大小。然后你的视图层次看起来像'UIScrollView - > LayoutManager - >所有其他视图' – demosten

回答

1

我会做的是使用自动布局。如果你使用内部约束将您的子视图添加到滚动视图,然后这些约束不仅可以确定子视图的距离相互之间相互矛盾,而且还与围绕它们的想象内容视图的距离有关。滚动视图然后使用内容视图的大小作为它的contentSize,整个事情变得可滚动。尽管事实上你不知道任何观点的高度,但这仍然有效,这正是你所追求的。

+0

例如,看下面的代码:https ://github.com/mattneub/Programming-iOS-Book-Examples/blob/master/bk2ch07p362scrollViewInCode2/ch20p670scrollViewInCode2/ViewController.m你会注意到我在滚动视图中添加了一大堆UILabel对象。但是,我从来没有问过任何这些UILabel物体的高度!但结果是,你可以滚动到任何一个。这是因为'contentSize'是基于我添加标签时添加的约束条件自动设置的。 – matt

+0

莽,你我的英雄!!!!老实说,我尝试了苹果的页面教程同样的方法,但也有一些为什么它不适合我,视图搞砸了如此奇怪,并且你的链接将它清除为重新煮沸的水!非常感谢,非常感谢! –

相关问题