Ios 如何使UIScrollView垂直滚动,其中包含大量动态子视图?
所以我有一个Ios 如何使UIScrollView垂直滚动,其中包含大量动态子视图?,ios,objective-c,loops,uiview,uiscrollview,Ios,Objective C,Loops,Uiview,Uiscrollview,所以我有一个UIScrollView,在其中,我想添加一些子视图,目前我有大约5或6个,它们的高度约为90px,所以很明显,当它到达屏幕底部时,我希望它滚动,以便您可以看到更多,如果有意义的话 下面是我已经拥有的,parentView是UIScrollView,newResult是我想附加的一行GSResultBlock是扩展UIView的类 for (NSObject * person in resultsCollection) { CGRect resultBlockFr
UIScrollView
,在其中,我想添加一些子视图,目前我有大约5或6个,它们的高度约为90px
,所以很明显,当它到达屏幕底部时,我希望它滚动,以便您可以看到更多,如果有意义的话
下面是我已经拥有的,parentView
是UIScrollView
,newResult
是我想附加的一行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;
}
请记住,foreachnewResult
中还会有其他子视图,例如,UIImageView
etc。。(但上述代码中未包含这些内容)
有什么想法吗?提前感谢。您需要使用以下方法更新
UIScrollView
的contentSize
:
[parentView setContentSize:CGSizeMake(CGRectGetWidth(parentView.frame), resultCount)];
在for循环结束后。查看
将所有视图放入滚动视图后,运行此操作,滚动视图的滚动量将正确您正在寻找此选项吗
setContentOffset:animated:
我不太确定,也许我该如何使用它?这是UIScrollView
的一种方法。你通过CGPoint
它会滚动到那个点。我试了一下,但它只滚动一次,然后它就静止不动了。当你在滚动视图中添加新视图时,你也应该增加滚动视图的contentSize。他不需要运行那个循环。他已经计算了内容的大小,并存储在resultCount
中。啊,我明白了,不确定他问的是什么。我认为你的想法是正确的,按照你的建议设置内容大小应该可以解决@harry lawrence的问题。我只是说,他不需要去重新计算内容高度,因为他已经在他在问题中发布的代码中计算过了。
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);