Ios 如何更改iPhone X中选项卡栏的高度

Ios 如何更改iPhone X中选项卡栏的高度,ios,objective-c,iphone,uitabbarcontroller,Ios,Objective C,Iphone,Uitabbarcontroller,我有一个应用程序,之前是在2014年设计的。现在我必须使应用程序设计与iPhoneX兼容 当我在iPhoneX模拟器上运行该应用程序时,除了选项卡栏外,一切都正常。在iPhoneX模拟器中,选项卡栏的高度会增加 我知道基本的安全区域指南,但现在我不知道该怎么填写 顶部和底部空白区域,我只想将标准选项卡栏显示为 它显示在其他iPhone上 选项卡栏是以编程方式添加的,因此我尝试按如下方式更改其高度 tabBarController = [[UITabBarController alloc] in

我有一个应用程序,之前是在2014年设计的。现在我必须使应用程序设计与iPhoneX兼容

当我在iPhoneX模拟器上运行该应用程序时,除了选项卡栏外,一切都正常。在iPhoneX模拟器中,选项卡栏的高度会增加

我知道基本的安全区域指南,但现在我不知道该怎么填写 顶部和底部空白区域,我只想将标准选项卡栏显示为 它显示在其他iPhone上

选项卡栏是以编程方式添加的,因此我尝试按如下方式更改其高度

tabBarController = [[UITabBarController alloc] initWithNibName:nil bundle:nil];
self.tabBarController.viewControllers = [[NSArray alloc] initWithObjects:trailsNavController,mapNavController, gpsNavController,infoNavController, signUpNavController, nil];
    self.tabBarController.delegate = self;
self.tabBarController.tabBar.frame = CGRectMake(self.tabBarController.tabBar.frame.origin.x, self.tabBarController.tabBar.frame.origin.y, self.tabBarController.tabBar.frame.size.width, 40);
    self.window.rootViewController = self.tabBarController;
当我添加闪屏时,应用程序的设计会被扭曲


还有其他方法可以改变它的高度吗?任何帮助都将不胜感激。

您应该使用比例高度。例如:

self.tabBarController.tabBar.frame = CGRectMake(self.tabBarController.tabBar.frame.origin.x, self.tabBarController.tabBar.frame.origin.y, self.tabBarController.tabBar.frame.size.width, self.view.frame.size.height/6);
到目前为止,我知道的唯一解决方案是引入自动布局


@aqca您是否为所有iphone和ipad版本添加了闪屏?您应该使用安全区域并为所有版本添加限制views@chiragshah,目前我不使用闪屏。如果我愿意,它将开始全屏呈现应用程序。@VadimKozak,现在我想要一个快速的解决方案。如果我将使用自动布局,那么我将需要重新设计整个应用程序。是的。但目前不需要填充顶部和底部空间。