如何让UIScrollView垂直滚动,其中包含动态数量的子视图?

时间:2013-03-26 14:16:34

标签: ios objective-c loops uiview uiscrollview

所以我有一个UIScrollView并且在其中,我想添加一些子视图,目前我有大约5或6个,它们的高度约为90px,所以很明显当它到达时屏幕的底部,我希望它滚动,这样你就可以看到更多,如果这是有道理的。

以下是我的内容,parentViewUIScrollViewnewResult是我要添加的行。 GSResultBlock是一个扩展UIView的类。

    for (NSObject * person in resultsCollection) {
      CGRect resultBlockFrame   = CGRectMake(0, resultCount, parentView.bounds.size.width, 90);
      GSResultBlock * newResult = [[GSResultBlock alloc] initWithFrame:resultBlockFrame];

      [parentView addSubview:[newResult getResultBlock]];

      [newResult release];

      resultCount = resultCount + 95;
}

请注意,foreach newResult还会有其他子视图,例如UIImageView等...(虽然它们不包含在上面的代码中)

有什么想法吗?提前谢谢。

2 个答案:

答案 0 :(得分:2)

您需要使用以下内容更新contentSize的{​​{1}}

UIScrollView
在你的for循环结束后

答案 1 :(得分:0)

查看this answer

float maxHeight = 0;

for(UIView *v in [scrollView subviews]){
    if(v.frame.origin.x + v.frame.size.height > maxHeight)
        maxHeight = v.frame.origin.x + v.frame.size.height;
}

self.scrollView.contentSize = CGSizeMake(scrollView.frame.size.width, maxHeight+5);

将所有视图放入滚动视图后,运行此视图会使滚动视图滚动到正确的数量