1

i have a problem with UIScrollView and UINavigationController(s) and iOS 4. The following code works fine with iOS 5:

 ////////////////////////////////////////////////////////////////////////////////////
 /* Scroll View */ 
 ////////////////////////////////////////////////////////////////////////////////////
 mScrollView = [[UIScrollView alloc]   initWithFrame:CGRectMake(0, 88, 1024, 668)];
 mScrollView.contentSize = CGSizeMake(1850, 668);

 ////////////////////////////////////////////////////////////////////////////////////
 // First View 
 ////////////////////////////////////////////////////////////////////////////////////
 UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:           @"view_bg.png"]];
 imgView.frame= CGRectMake(10, 50, 350, 510);
 [mScrollView addSubview:imgView];
 [imgView release];

 mFirstView = [[[FirstView alloc]  init] autorelease];
 UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:mFirstView]; 
 navigationController.navigationBar.tintColor = [UIColor colorWithRed:79.0/255 green:143.0/255 blue:0.0/255 alpha:1];
 navigationController.view.frame = CGRectMake(25, 65, 320, 480);   
 [mScrollView addSubview:navigationController.view];

 ////////////////////////////////////////////////////////////////////////////////////
 // Second View
 ////////////////////////////////////////////////////////////////////////////////////
 UIImageView *imgView2 = [[UIImageView alloc] initWithImage:[UIImage imageNamed: @"view_bg.png"]];
 imgView2.frame= CGRectMake(380, 50, 350, 510);
 [mScrollView addSubview:imgView2];
 [imgView2 release];

 mSecondView = [[[SecondView alloc]  init] autorelease];
 UINavigationController *navigationController2 = [[UINavigationController alloc] initWithRootViewController:mSecondView]; 
 navigationController2.navigationBar.tintColor = [UIColor colorWithRed:79.0/255     green:143.0/255 blue:0.0/255 alpha:1];
 navigationController2.view.frame = CGRectMake(395, 65, 320, 480);
[mScrollView addSubview:navigationController2.view];

// finally add the scroll view to the parent view
[self.view addSubview:mScrollView];

All i do is, to add a ScrollView with 2 NavigationControllers (with a allocated root view controller) do the view. But using this code with iOS 4 does not show the right size of the ViewControllers added. The ViewControllers are the size of the whole iPad screen!!!!!

As i already said, it works on iOS 5! Even when i change the size of the views added manually it is not working, the added view always fills the whole iPad screen!! Any ideas to fix this?

Thank you in advance!

4

1 回答 1

0

在您的代码中,您具有以下内容

//first view you add mfirstview.view
[mScrollView addSubview:mFirstView.view];

//second view you add navigationController2.view
[mScrollView addSubview: navigationController2.view];

所以我想你必须更改第一个视图代码才能执行以下操作

[mScrollView addSubview: navigationController.view];
于 2012-06-04T16:22:30.383 回答