Ios 将选项卡栏移动到屏幕顶部

Ios 将选项卡栏移动到屏幕顶部,ios,iphone,interface-builder,uitabbarcontroller,Ios,Iphone,Interface Builder,Uitabbarcontroller,我有一个选项卡栏控制器,我们知道,它在屏幕底部显示选项卡栏。我正在寻找一种方法,将其移动到顶部。我认为我不能使用简单的uitabar,因为我需要在它下面嵌套UINavigationControllers 有没有办法将UITabBarController中的选项卡栏移动到屏幕顶部?我不这么认为。我唯一能想到的是使用UITabBar而不是UITabbarController 如果您考虑为不同选项卡加载的每个视图嵌套UINavigationController,这可能是一个更好的选择。(在Swift中

我有一个选项卡栏控制器,我们知道,它在屏幕底部显示选项卡栏。我正在寻找一种方法,将其移动到顶部。我认为我不能使用简单的
uitabar
,因为我需要在它下面嵌套
UINavigationControllers


有没有办法将
UITabBarController
中的选项卡栏移动到屏幕顶部?

我不这么认为。我唯一能想到的是使用UITabBar而不是UITabbarController

如果您考虑为不同选项卡加载的每个视图嵌套UINavigationController,这可能是一个更好的选择。

(在Swift中)

在TabBarViewController.swift文件中(每个人都按照自己的意愿命名此文件):

  • 首先:创建选项卡栏的IBOutlet,然后将其连接到故事板或nib文件中的相应选项卡栏

    @IBOutlet var profileTabBar : UITabBar!
    
  • 第二:在viewDidLoad()函数中添加此代码,以将选项卡栏放置在所需的位置(在本例中,我在导航控制器下添加了de-tab栏)。修改CGRectMake初始值设定项的位置更改xy

    // [Maybe you don't have a navigation controller] yNavBar indicates the height of the navigation bar. 
    var yNavBar = self.navigationController?.navigationBar.frame.size.height
    // yStatusBar indicates the height of the status bar 
    var yStatusBar = UIApplication.sharedApplication().statusBarFrame.size.height
    // Set the size and the position in the screen of the tab bar
    profileTabBar.frame = CGRectMake(0, yNavBar! + yStatusBar + profileTabBar.frame.size.height, profileTabBar.frame.size.width, profileTabBar.frame.size.height)
    
在“viewDidLayoutSubviews”方法中尝试这段代码,您的UIAbbarController

Swift 2.X

  self.tabBar.frame = CGRectMake(0,0,320,50) //example for iPhone 5
  self.tabBar.frame = CGRect(0,0,320,50) //example for iPhone 5
  self.tabBar.frame = CGRect( x: 0, y: 0, width: 320, height: 50)  //example for iPhone 5
Swift 3.X

  self.tabBar.frame = CGRectMake(0,0,320,50) //example for iPhone 5
  self.tabBar.frame = CGRect(0,0,320,50) //example for iPhone 5
  self.tabBar.frame = CGRect( x: 0, y: 0, width: 320, height: 50)  //example for iPhone 5
Swift 4.X

  self.tabBar.frame = CGRectMake(0,0,320,50) //example for iPhone 5
  self.tabBar.frame = CGRect(0,0,320,50) //example for iPhone 5
  self.tabBar.frame = CGRect( x: 0, y: 0, width: 320, height: 50)  //example for iPhone 5

我使用
选项卡栏控制器
,然后我只需在
ViewDidLoad()中的
选项卡栏控制器
中更改
选项卡栏
的位置

以下是所需结果的屏幕摘要。。。


注意:它在swift 3中您可以自己将语法更改为swift 2.*选项卡视图控制器是UITabBarController的子类吗?不,选项卡视图控制器类不存在谢谢您的回答。这对我来说很有效,但在我移动tabbar的地方有一个黑色区域。有人能帮忙吗?请告诉我如何在视图的左侧设置uitabbar。提前谢谢你,我也这么做了,但对我来说不行。我只是想删除一些屏幕中的tabbar,但它不起作用。请在tabbar类的“viewDidLayoutSubviews”方法中编写代码。它起作用,但请在回答中提及。再次感谢你,这行不通。您不能将此设置为viewDidLoad func