无法将自定义视图控制器添加到UIScrollVIew
问题描述:
我试图使一个应用程序使用UIScrollView页面之间的动态生成的自定义视图控制器的数量不确定。不幸的是,当我尝试下面显示的代码时,我得到的只是一个空白屏幕。另外,我在子视图后面添加的nslog语句应该添加到UIScrollView中,总是说UIScrollView具有零子视图。我完全被这个问题困惑,并且非常感谢任何帮助。无法将自定义视图控制器添加到UIScrollVIew
- (void)loadView
{
[super loadView];
scrollView.pagingEnabled = YES;
viewControllers = [[NSMutableArray alloc] init];
CGRect screenBounds = [[UIScreen mainScreen] bounds];
CGFloat screenScale = [[UIScreen mainScreen] scale];
CGFloat width = screenBounds.size.width * screenScale;
CGFloat height = screenBounds.size.height * screenScale;
scrollView.contentSize = CGSizeMake(width * [routes count], height);
for(int i = 0; i < [arrayWithDataForViewControllers count]; i++)
{
ViewController *controller = [[ViewController alloc] init];
controller.view.frame = CGRectMake(width*i, 20, width, height);
[scrollView addSubview:controller.view];
NSLog(@"SUBVIEWS %d", [[scrollView subviews] count]);
[viewControllers addObject:controller];
}
}
答
检查你的ViewController的视图以外的滚动视图 - 可能是它的视图属性为零。
+0
我检查了ViewControllers的视图,它们不是零。 :( – InsaneOstrich 2012-02-12 04:57:51
我有一个预感,你的scrollView甚至没有在loadView函数中初始化。这就是为什么你在子视图中看到0的原因。 – 2012-02-12 03:48:39
你是对的;我将代码移到了viewDidLoad,但它没有解决问题。 – InsaneOstrich 2012-02-12 04:58:33
初始化你的UIScrollView是什么?如果您使用笔尖,请确保您将IBOutlet连接到它。如果没有,您应该将所有代码移回loadView,并明确分配/ initWithFrame您的UIScrollView。 – 2012-02-12 05:02:05