在UIScrollView中动态添加的子视图未显示

ric*_*ard 7 iphone ios

我在向UIScrollView动态添加子视图时遇到了很多麻烦.滚动视图适用于在NIB中创建的内容,但由于要显示的子视图取决于我的应用程序中的数据(图像,标签,单选按钮等的混合),我需要能够动态创建和显示它们.

根据我读过的所有内容,它在各种网站和Apple文档中看起来非常简单.在视图控制器的viewDidLoad中,我添加了以下代码,

UILabel *testLabel = [[UILabel alloc] init];
[testLabel setFrame:CGRectMake(50, 50, 100, 40)];
[testLabel setText:@"My Test label"];
[scrollView addSubview:testLabel];

[testLabel release];
Run Code Online (Sandbox Code Playgroud)

标签根本不会出现在滚动视图中,但如果我将testLabel添加到self.view,则会出现(但显然不在滚动内容中).我甚至尝试将代码添加到viewDidAppear,以防我误解了没有运气的事件顺序.

当我检查调试器时,我注意到滚动视图的地址是0x0,我认为这意味着它由于某种原因而无效,这可以解释为什么它不起作用.我假设如果我将此scrollView指针连接到IB中的实际滚动视图,它将自动分配正确的地址.这是不正确的?如果是这种情况,我该如何获取视图的地址?

- 更新 -
感谢所有反馈.我按照每个人的建议检查了一切,这当然都是正确的.我不需要设置内容的大小,因为我在NIB中有一些其他虚拟标签(用于测试滚动工作).但我会记得以后:-)

有趣的是,在再次检查代码并且没有进行任何更改之后,我再次运行它并且它刚刚起作用!! 不知道为什么,但我会发布原因,如果我弄清楚...

Or *_*Ron 3

当您使用scrollView时,您需要通过执行以下操作来设置内容大小:

scrollView.contentSize = CGSizeMake(@width,@height);
Run Code Online (Sandbox Code Playgroud)

在这种情况下,如果您想看到标签,尺寸应该大于 50,50

希望有帮助