将uiscrollview添加到现有的uiview - 无法获取要滚动的内容

时间:2013-01-02 19:31:56

标签: objective-c uiscrollview scroll subview

我一直在使用XCode 4.5.2中的一个项目,并设置了各种uiviews,并按照我想要的方式进行操作。

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

我添加了一个uiscrollview,并在viewdidload

中设置了内容大小等
[scrollView setScrollEnabled:(YES)];
[scrollView setContentSize:CGSizeMake(320,650)];

当我运行它并尝试垂直滚动时,我可以看到滚动条出现,因此uiscrollview正在工作和滚动,但我已经添加到我的uiview的所有内容都保持不动并且不会移动。

我尝试以编程方式将一个小的快速测试图像添加到scrollview

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

这个小图片的工作方式与滚动视图一样滚动,但所有其他以前添加的内容,标签,图片等都仍保留在原来的位置,根本不会移动。

我假设这与子视图有关,而我以前的所有现有内容都不是滚动视图的子视图 - 但我该如何更正?

我已经在界面构建器中展示了我的页面和uiview,并且不想删除所有内容并以编程方式添加所有内容,就像我对小测试图像所做的那样。

我是否需要在viewdidload中将现有内容设置为uiscrollview的子视图?

[scrollView addSubview:???];

非常感谢您提前提出任何建议或建议 - 这让我发疯了!

如果您需要任何屏幕截图或更多代码,请随时附上。

1 个答案:

答案 0 :(得分:2)

问题是你的所有东西都被添加到UIView中,而不是滚动视图。滚动滚动视图只会滚动它的子项,这就是您的测试图像滚动的原因。如果你在一个笔尖中构建它,你只需要拖动所有需要在滚动视图中滚动的东西,它就会起作用。您还可以将控制器UIView更改为UIScrollView本身。这是在右侧实用工具栏的第3个选项卡上,它表示自定义类,将其更改为UIScrollView。通过这种方式你会失去一些多功能性,但这是最快的方式。