iPhone - 实现UIScrollView的正确方法是什么?

时间:2011-11-06 20:10:49

标签: iphone controller scrollview

我有两个UIViewControllers,每个都有自己的nib文件。每个控制器都有不同的用途。我们的想法是添加一个UIScrollController并向其添加两个UIViewControllers,以便用户可以轻松地在它们之间滚动。

Q1)这甚至可能吗?或者我是否认为UIScollControllers的目的不正确,如果是这样,最好的选择是什么。

我一直在互联网上探索,我能想出的最好的是:

ScoreViewController *scoreController = [[ScoreViewController alloc] initWithNibName:@"ScoreViewController" bundle:nil];
scoreController.view.frame = CGRectMake(0.0f, 0.0f, 960f, 640f);
[self.scrollview addSubview:scoreController.view];
[scoreController release];

SettingsViewController *settingsController = [[SettingsViewController alloc] initWithNibName:@"SettingsViewController" bundle:nil];
settingsController.view.frame = CGRectMake(0.0f, 0.0f, 960f, 640f);
[self.scrollview addSubview:settingsController.view];
[settingsController release];

此代码在RootViewController类中输入。它似乎不起作用,因为我无法在我添加的两个UIViewControllers(分数和设置)之间滚动。屏幕上显示的是添加的第二个控制器 - SettingsViewController。

Q2)为什么会这样?

谢谢。 :)

1 个答案:

答案 0 :(得分:0)

实际上你正确地放置了第一个控制器,然后把第二个控制器放在它上面。

settingsController.view.frame = CGRectMake(0.0f, 0.0f, 960f, 640f);
  1. 960x640 - 这不是输入坐标的正确方法(320x480是实际尺寸)双尺寸仅用于图像文件
  2. 0.0f,0.0f表示x:0,y:0,所以在第二个控制器中你需要x:320,y:0
  3. 然后,您必须设置scrollView的contentSize

    scrollview.contentSize = CGSizeMake(320*2, 480);
    

    然后启用scrollView的分页;

    scrollview.pagingEnabled = YES;
    

    这应该有效:)