【问题标题】:adding uiscrollview to existing uiview - cant get content to scroll将 uiscrollview 添加到现有的 uiview - 无法滚动内容
【发布时间】:2013-01-02 19:31:56
【问题描述】:

我一直在使用 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:???];

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

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

【问题讨论】:

    标签: objective-c uiscrollview scroll subview


    【解决方案1】:

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

    【讨论】:

    • 我在 Xcode 4.5.2 的界面构建器中构建它 我知道当前内容被添加到 uiview 而不是滚动视图中,这是我的想法 - 也是我理解测试图像的原因有效,但现有内容没有。那么如何轻松/快速地将现有内容移出 uiview 并拖入界面构建器中的滚动视图?
    • 我刚刚检查过,UIScrollView 不是我的界面构建器下拉菜单的自定义类中的选项...
    • 界面构建器有时并不像它应该的那样聪明。正如您所说,您可以简单地拖动它。或者您可以添加一个 UIScrollView,将您的 UIView 拖到其中,然后将 UIScrollView 作为 UIViewController 的“视图”IBOutlet。
    猜你喜欢
    • 2013-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-12
    • 1970-01-01
    • 2012-02-14
    • 1970-01-01
    • 2012-05-03
    相关资源
    最近更新 更多