UIScrollView contentSize问题

时间:2011-05-28 09:00:58

标签: iphone ios uiscrollview

在我的视图中,我创建了一个宽度为320,高度为70的滚动视图。

响应用户触摸按钮,我展开了滚动视图,因此它的大小为380(h)x 320(w)。

此代码如下所示:

CGRect scrollviewFrame = CGRectMake(0, 30, 320, 380);
[scrollView setFrame:scrollviewFrame];
[self layoutScrollImages:YES];
CGSize srect =  CGSizeMake([scrollView bounds].size.width, (kNumImages * kScrollObjHeight));
[scrollView setContentSize:srect];

当我调试这个项目时,我可以看到直立是320(宽)x 8000(高);但是我的问题是可滚动区域(用户实际可以触摸以滚动滚动视图)保持与原始大小相同。

我显然错过了一些东西,有人知道它是什么吗?

编辑:我创建了一个示例项目来说明我遇到的问题,可在此处找到:http://dl.dropbox.com/u/9930498/ScrollViewTest.zip

2 个答案:

答案 0 :(得分:2)

我认为,您的下面一行代码存在问题。

CGSize srect =  CGSizeMake([scrollView bounds].size.width, (kNumImages * kScrollObjHeight));
   [scrollView setContentSize:srect];

调试程序并查看 srect 的内容,另请告诉我们以下两个常量的值

kNumImageskScrollObjHeight

答案 1 :(得分:-1)

您需要更改scrollview的contentSize以及框架。 也许这会有所帮助:UIScrollView Class Reference

设置新尺寸时执行此操作

scrollView.scrollEnabled = YES;
scrollView.showsHorizontalScrollIndicator = YES;
scrollView.showsVerticalScrollIndicator = YES;
[scrollView setFrame:CGRectMake(0, 30, 320, 380)];
CGSize srect =  CGSizeMake([scrollView bounds].size.width, (kNumImages * kScrollObjHeight));
[scrollView setContentSize:srect];
[self layoutScrollImages:YES];