我确定这是我不知道如何表达我的问题的问题,但我不知所措。
我正在处理一个包含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;
答案 0 :(得分:0)
标签栏控制器(或任何视图控制器)将始终尝试调整其视图的大小,以便它占用其超级视图的整个边界。因此,如果您希望标签栏控制器不这样做,我会创建另一个普通视图控制器,成为您的新根视图控制器。
在该视图控制器的视图中,您可以创建2个容器子视图,一个用于statsView
,另一个用于标签栏控制器。现在,您将标签栏控制器的视图添加到一个容器视图,将StatsViewController
的视图添加到另一个容器视图。
(注意:我没有测试过。)