Tengo una Tab Bar Controller que, como sabemos, se muestra la barra de pestañas en la parte inferior de la pantalla. Estoy buscando una manera de moverlo a la parte superior. Creo que no puede utilizar un simple UITabBar para esto necesito nido UINavigationControllers debajo de ella.

Hay alguna forma de mover la Barra de pestañas en un UITabBarController a la parte superior de la pantalla?

InformationsquelleAutor emachine | 2011-07-13

4 Comentarios

  1. 9

    Prueba este código en métodos de «viewDidLayoutSubviews» su UITabBarController

    Swift 2.X

      self.tabbar.frame = CGRectMake(0,0,320,50) //example for iPhone 5

    Swift 3.X

      self.tabbar.frame = CGRect(0,0,320,50) //example for iPhone 5

    Swift 4.X

      self.tabbar.frame = CGRect( x: 0, y: 0, width: 320, height: 50)  //example for iPhone 5
    • Yo hago lo mismo pero no funciona en mi caso. Solo quiero quitar tabbar en algunas pantallas, pero no está funcionando.
    • Hacer código en los métodos de «viewDidLayoutSubviews» de Tabbar clase
    • Ohh es de trabajo pero por favor, menciona en su respuesta. Gracias una vez más.
  2. 4

    (en Swift)

    En el TabBarViewController.swift archivo (todos los que ha nombrado este archivo como él quiere):

    • Primero: crear un IBOutlet de una barra de pestañas y, a continuación, conéctelo a la adecuada barra de pestañas en el guión gráfico o en el archivo nib.

      @IBOutlet var profileTabBar : UITabBar!
    • Segundo: añadir este código en el viewDidLoad() función de situar la barra de pestañas donde quiera (en este caso puedo añadir de la barra de pestañas bajo la navegación del controlador). Para modificar la posición de cambio de x y y de CGRectMake inicializador.

      //[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)
    • Es el TabBarViewController una subclase de UITabBarController?
    • No, el TabBarViewController clase no existe
    • Gracias por tu respuesta. Funcionó para mí, pero estoy teniendo una región negra en el lugar de donde me mudé a la tabbar. ¿Alguien puede ayudar ?
  3. 0

    No me lo creo. La única cosa que puedo pensar es el uso de UITabBar en lugar de UITabbarController …

    Esta podría ser una mejor opción, de todos modos si usted está considerando la anidación UINavigationControllers para cada vista de carga para las diferentes pestañas.

    • por favor, dime cómo establecer uitabbar en el lado izquierdo de la vista. Gracias de antemano
  4. -2

    Yo uso Tab Bar Controller entonces yo simplemente cambiar el TabBar posición en la Tab Bar Controller en el ViewDidLoad()

    import UIKit
    
    class TabbarViewController: UITabBarController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        self.tabBar.frame = CGRect(origin: CGPoint(x: 0,y :64), size: CGSize(width: 400, height: 50))
    
    }
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        //Dispose of any resources that can be recreated.
    }
    }

    Aquí es la Pantalla Corto adjunto de el resultado deseado…
    Barra de pestañas en la parte superior de la ficha vista de la barra de conmtroller

    Nota: es en swift 3 puede cambiar la sintaxis para swift 2.* por su propia cuenta.

    • esto no funciona. No se puede poner esto en viewDidLoad func

Dejar respuesta

Please enter your comment!
Please enter your name here