2013-01-02 40 views
0

我一直在XCode 4.5.2中开发一个项目,并设置了各种uiviews,并寻找我希望他们和所有工作的方式。将uiscrollview添加到现有的uiview - 无法获取滚动的内容

在一个视图中,我现在需要添加一个uiscrollview,因为内容将比页面大,并且需要垂直滚动。

我加入了一个UIScrollView,并设置内容大小等,在viewDidLoad中

[scrollView setScrollEnabled:(YES)]; 
[scrollView setContentSize:CGSizeMake(320,650)]; 

当我运行这一点,并尽量垂直滚动,我可以看到滚动条出现,所以UIScrollView的工作和滚动,但我已经添加到我的uiview中的所有内容都保持不动。

我曾尝试以编程方式增加一个小的快速测试图像滚动视图

CGRect imageViewFrame = CGRectMake(10,10,10,10); 
UIImageView *imageView = [[UIImageView alloc] initWithFrame:imageViewFrame]; 
imageView.image = [UIImage imageNamed:@"1001_a.jpg"]; 
[scrollView addSubview:imageView]; 

而这个小图片作品和滚动使用,应滚动视图,但所有其他以前添加的内容,标签,图像,等等,都仍然留在原地,完全不动。

我认为这是与子视图有关的事情,而我之前的所有内容都不是scrollview的子视图 - 但我该如何纠正?

我已经有我的页面和uiview在界面生成器中进行了布局,并且不真的想删除所有内容并以编程方式添加所有内容,就像我对小测试图像所做的那样。

在viewdidload中需要做什么来将现有内容设置为子视图到uiscrollview?

[scrollView addSubview:???]; 

非常感谢任何提示或建议提前 - 这是让我疯狂!

如果您需要任何截图或其他代码,请高兴附上。

回答

2

问题是,所有的东西都添加到UIView,而不是scrollview。滚动scrollview只会滚动它的孩子,这就是为什么你的测试图像滚动。如果你用nib构建它,你只需要拖动所有需要滚动的东西在scrollview中,它就可以工作。您也可以将控制器UIView更改为UIScrollView本身。这是在实用程序的右侧栏中的第三个选项卡上,它表示自定义类,将其更改为UIScrollView。这样做会失去一些多功能性,但这是最快的方法。

+0

我在Xcode 4.5.2中的接口生成器中构建这个我明白当前内容被添加到uiview而不是scrollview,那是我的想法 - 为什么我理解测试图像工作但现有内容没有。那么,如何轻松/快速地将现有内容从UI视图移出/拖入界面构建器中的滚动视图? – Richard

+0

我刚刚检查过,并且UIScrollView不是我的界面构建器下拉菜单的自定义类中的选项... – Richard

+0

界面构建器有时不像它那样聪明。你可以简单地拖动它,就像你说的那样。或者你可以添加一个UIScrollView,拖动你的UIView,然后把UIScrollView作为UIViewController的“视图”IBOutlet。 –