我一直在使用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:???];
非常感谢您提前提出任何建议或建议 - 这让我发疯了!
如果您需要任何屏幕截图或更多代码,请随时附上。
答案 0 :(得分:2)
问题是你的所有东西都被添加到UIView中,而不是滚动视图。滚动滚动视图只会滚动它的子项,这就是您的测试图像滚动的原因。如果你在一个笔尖中构建它,你只需要拖动所有需要在滚动视图中滚动的东西,它就会起作用。您还可以将控制器UIView更改为UIScrollView本身。这是在右侧实用工具栏的第3个选项卡上,它表示自定义类,将其更改为UIScrollView。通过这种方式你会失去一些多功能性,但这是最快的方式。