2

我正在开发使用 Tabbarcontroller 的应用程序(有两个选项卡)在 iphone 上一切正常,但在 ipad 上,两个选项卡都位于屏幕中央

我想在每个选项卡的中心显示标题和图像(考虑到选项卡宽度是屏幕的一半)

在搜索这些时,我遇到了 UIEdgeInsetsMake

将 iOS TabBar 项目标题调整到它的中心但对此没有帮助。

我不明白把这段代码放在哪里。我试图把它放在 FirstViewController 中,然后放在应用程序委托中(一个接一个),但对我没有任何作用

这是我的 appDelete 代码:

FirstViewController *firstVC = [[FirstViewController alloc] init];
UINavigationController *navController1 = [[UINavigationController alloc] initWithRootViewController:firstVC];
//navController1.title = @"First Tab";
navController1.tabBarItem.image = [UIImage imageNamed:@"first.png"];

SecondViewController *secondVC = [[SecondViewController alloc] init];
UINavigationController *navController2 = [[UINavigationController alloc] initWithRootViewController:secondVC];
navController2.title = @"Second Tab";
navController2.tabBarItem.image = [UIImage imageNamed:@"second.png"];

NSArray *array = [[NSArray alloc] initWithObjects:navController1,navController2, nil];
UITabBarController *tabBarController = [[UITabBarController alloc] init];
 tabBarController.tabBarItem.imageInsets = UIEdgeInsetsMake(0, -50, 0, 50);

tabBarController.viewControllers = array;

[self.window setRootViewController:tabBarController];

self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;

有人可以帮忙吗?

4

2 回答 2

5

您应该将此代码放在 UITabBarController 的 viewWillLayoutSubviews 中

self.tabBar.itemPositioning = UITabBarItemPositioningFill;

斯威夫特 4, 5

self.tabBar.itemPositioning = .fill
于 2016-08-27T12:28:42.287 回答
2

参考这个答案,我建议你这样做

1 获取屏幕宽度并将其除以您拥有的标签栏项目的数量

2 一旦划分后,将平均值setItemWidth分配给UITabBar

CGRect screenSize = [[UIScreen mainScreen] applicationFrame];
int count  = [array count];
float width  = screenSize.size.width/count;
[[UITabBar appearance] setItemWidth:width];
于 2014-05-26T06:03:36.780 回答