1

我一直在 XCode 4.5.2 中从事一个项目,并设置了各种 uiviews,并按照我想要的方式查看它们并使其正常工作。

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

我在 viewdidload 中添加了一个 uiscrollview,并设置了内容大小等

[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];

这个小图像可以正常工作并与滚动视图一起滚动,但是所有其他先前添加的内容、标签、图像等,都仍然停留在它们原来的位置并且根本不动。

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

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

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

[scrollView addSubview:???];

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

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

4

1 回答 1

2

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

于 2013-01-02T19:36:47.910 回答