调整UITabBarController子视图的大小

时间:2011-04-21 17:02:10

标签: cocoa-touch ipad uiviewcontroller uitabbarcontroller

我确定这是我不知道如何表达我的问题的问题,但我不知所措。

我正在处理一个包含2个子视图的应用程序,这些子视图将始终位于屏幕顶部(占据包括状态栏在内的总共114个像素)。我希望剩余的空间可以用UITabBar和它的子视图。

我能够获得的最接近的是标签视图,其大小正确但位于0,0所以它位于我的持续子视图下。

// Create the main toolbar
toolbar = [[UIToolbar alloc] init];
[toolbar sizeToFit];
toolbar.frame = CGRectMake(0.0, 20, 768, 44);

UILabel *textLabel = [[UILabel alloc] init];
textLabel.frame = CGRectMake(240, 20, 300, 40);
textLabel.textAlignment = UITextAlignmentCenter;
textLabel.backgroundColor = [UIColor clearColor];
textLabel.text = @"Character Name";
[self.window addSubview:textLabel];
[textLabel release];

...

// Create the stats bar
StatsViewController *statsView = [[StatsViewController alloc] init];
statsView.view.frame = CGRectMake(0.0, 64, 768, 50);
[self.window addSubview:statsView.view];

// Create Tab Bar Controller and Tab View Controllers
tabBarController = [[UITabBarController alloc] init];

...

[self.window setRootViewController:tabBarController];
[tabBarController release];

[self.window addSubview:toolbar];
[self.window bringSubviewToFront:statsView.view];
[self.window bringSubviewToFront:textLabel];
[self.window makeKeyAndVisible];
return YES;

1 个答案:

答案 0 :(得分:0)

标签栏控制器(或任何视图控制器)将始终尝试调整其视图的大小,以便它占用其超级视图的整个边界。因此,如果您希望标签栏控制器不这样做,我会创建另一个普通视图控制器,成为您的新根视图控制器。

在该视图控制器的视图中,您可以创建2个容器子视图,一个用于statsView,另一个用于标签栏控制器。现在,您将标签栏控制器的视图添加到一个容器视图,将StatsViewController的视图添加到另一个容器视图。

(注意:我没有测试过。)