Estoy actualizando mi aplicación para usar iOS 7 y estoy teniendo un problema con una vista de tabla. Mi barra de pestañas es translúcido. El problema es cuando me desplácese hasta la parte inferior de mi mesa, de punto de vista, parte de la última celda está todavía por debajo de la barra de pestañas. Me gustaría tener un poco de espacio entre la última celda y la barra de pestañas. Yo podría solucionar este problema mediante el uso de un opaco de la barra de pestañas en su lugar, pero quiero mantenerlo translúcido.

Formato Tableview Mostrando Detrás De La Barra De Pestañas

InformationsquelleAutor raginggoat | 2014-01-02

10 Comentarios

  1. 40

    Pruebe a establecer

    self.edgesForExtendedLayout = UIRectEdgeNone;
    self.extendedLayoutIncludesOpaqueBars = NO;
    self.automaticallyAdjustsScrollViewInsets = NO;

    Dentro del formato tableview controlador de

    • Sí, su trabajo pero, de repente, mi tabBar cambiado de color.
    • puedo decir que el cambio de color de color para que los colores?
    • Bueno, primero que era blanco, y luego se cambió a algunos gris con degradado. Pero después cambio manual de color blanco, todo está bien. Sólo me preguntaba por qué sucedió eso.
    • No funciona, la última celda está todavía por debajo de la barra de pestañas.
  2. 18

    Swift 4.x

    let adjustForTabbarInsets: UIEdgeInsets = UIEdgeInsetsMake(0, 0, self.tabBarController!.tabBar.frame.height, 0)
    self.yourTableView.contentInset = adjustForTabbarInsets
    self.yourTableView.scrollIndicatorInsets = adjustForTabbarInsets
    • Gracias @Hemang , trabajando muy bien para mí.
    • Funciona bien en iOS 11 (tanto iPhone 7 & iPhone X), no funciona en iOS 10
    • Gracias, @Hemang. A mí me funciona
    • Gracias @Hemang, Trabajo Para mí, pero tengo otro problema cuando presiono En NavigationBar barra de búsquedas que me da el espacio entre NavigationBar y en formato tableview. si usted tiene alguna solución para esto, por favor me actualice. Gran Trabajo
  3. 17

    De verificación de la captura de pantalla

    Formato Tableview Mostrando Detrás De La Barra De Pestañas

    Comprobar la virtud de la Barra superior y de la Onu-checke hasta la parte Inferior de la Barra de

    • ¿cómo puedo desactivar mediante programación? yo no podía hacerlo mediante programación
  4. 7

    SWIFT 3

    poner esto dentro de viewDidLoad de su tableViewController:

    self.edgesForExtendedLayout = UIRectEdge()
    self.extendedLayoutIncludesOpaqueBars = false
    self.automaticallyAdjustsScrollViewInsets = false
    • Esto funcionó para mi la altura de encargo de la barra de pestañas.
  5. 6

    Swift 3.0

    Esto es lo que ha funcionado para mí. En su Personalizados ViewController:

    override func viewDidLoad() {
        super.viewDidLoad()
    
        let adjustForTabbarInsets: UIEdgeInsets = UIEdgeInsetsMake(self.tabBarController!.tabBar.frame.height, 0, 0, 0);
        //Where tableview is the IBOutlet for your storyboard tableview.
        self.tableView.contentInset = adjustForTabbarInsets;
        self.tableView.scrollIndicatorInsets = adjustForTabbarInsets;
    }
    • El borde de Inserción debe ser por la parte inferior, aunque, no de la parte superior: let adjustForTabbarInsets: UIEdgeInsets = UIEdgeInsetsMake(0, 0, self.tabBarController!.tabBar.frame.height, 0);
  6. 1

    No seguro de que me gusta la solución, pero a mí me funciona.

    Con iOS 11 yo no tengo ningún problema, yo simplemente uso el siguiente en viewDidLoad():

    self.collectionView.bottomAnchor.constraint(self.view.safeAreaLayoutGuide.bottomAnchor).isActive = true

    Sin embargo en iOS 10 necesito hackear mi camino como este:

    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        let tabBarHeight: CGFloat = (self.parent?.tabBarController?.tabBar.frame.size.height)!
    
        if #available(iOS 11.0, *) {
    
        } else {
            self.collectionView.bottomAnchor.constraint(equalTo: self.view.bottomAnchor, constant: -tabBarHeight).isActive = true
        }
     }
  7. 0

    Si cualquier muestra detrás de un UITabBar usted puede agarrar la bottomLayoutGuide y hacer ajustes en tiempo de ejecución. Lo que quiero hacer es tener un BaseViewController que todos mi punto de vista de los controladores de heredar. Entonces, si la barra es visible nos ajustar la vista así:

    import UIKit
    
    class BaseVC: UIViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
    }
    
    override func viewDidLayoutSubviews() {
        //Ensures that views are not underneath the tab bar
        if tabBarController?.tabBar.hidden == false {
            var viewBounds = self.view.bounds;
            var bottomBarOffset = self.bottomLayoutGuide.length;
            self.view.frame = CGRectMake(0, 0, viewBounds.width, viewBounds.height - bottomBarOffset)
        }
      }
    }

    Ya que yo no uso los storyboards (donde puede hacer clic en una casilla de verificación en IB para solucionar este problema), esta ha sido la mejor solución que he encontrado.

  8. 0

    Es realmente duro para resolver el problema sin información de detalle o códigos reales. Tengo problema similar de tabview detrás de UItabBar en mi proyecto. Las soluciones que se ofrecen aquí no funcionan en mi caso. Después de explorar mis códigos, he encontrado una solución para mi caso.

    Aquí está breve explicación de mi caso. Tengo un UItabBar en la vista principal con dos botones de la ficha. En la pestaña vista, no hay vista de tabla. Si el usuario pulsa en una fila, una vista de detalle se presenta mediante el uso de la navegación controlador. En la vista de detalle, la barra de pestañas se oculta, y una barra de herramientas se muestra en la parte inferior.

    Con el fin de llevar la barra de pestañas de la espalda y ocultar la barra de herramientas cuando la vista principal es traído de vuelta, tengo que muestran de forma explícita de la barra de pestañas y ocultar barra de herramientas en el caso de viewWillAppear:

    class myMainViewController: UITableViewController {
      private var tabBarHidden: Bool? = {
        didSet {
          self.tabBarController?.tabBar.isHidden = tabBarIsHidden ?? true
        }
      }
    
      private var toolBarIsHidden: Bool? {
        didSet {
          let hidden = toolBarIsHidden ?? true
            self.navigationController?.toolbar.isHidden = hidden
            self.navigationController?.setToolbarHidden(hidden, animated: true)
          }
      }
      ...
      override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
    
        self.tabBarIsHidden = false
        self.toolBarIsHidden = true
      }
      ...
    }

    Finalmente me doy cuenta de que la visibilidad de la barra en la parte inferior se establece en el caso de viewWillAppear. En ese momento, el formato tableview o desplácese a la vista del contenido de los márgenes se establecen basa ya en ninguna barra en la parte inferior. Es por eso que mi formato tableview está detrás de la barra inferior.

    La solución que he encontrado es para restablecer el contenido de inserciones en el caso de viewDidAppear:

    override func viewDidAppear(_ animated: Bool) {
      //In the event of viewWillAppear, visibilities of tool bar and tab bar are set or changed,
      //The following codes resets scroll view's content insets for tableview
      let topInset = self.navigationController!.navigationBar.frame.origin.y +
        self.navigationController!.navigationBar.frame.height
      let adjustForTabbarInsets: UIEdgeInsets = UIEdgeInsetsMake(
            topInset, 0,
            self.tabBarController!.tabBar.frame.height, 0)
      self.tableView.contentInset = adjustForTabbarInsets
      self.tableView.scrollIndicatorInsets = adjustForTabbarInsets
    }
  9. 0

    Este es trabajo para mí

    override func viewDidLoad() {
    self.edgesForExtendedLayout = UIRectEdge()
    self.extendedLayoutIncludesOpaqueBars = false
    }

  10. -7

    Usted necesita para ajustar la altura de la vista de tabla. Acaba de salir de 49px en la parte inferior, como el tabbar altura es de 49 px. Ajustar la altura de la vista de tabla, de forma que quede 49px espacio debajo de ella.

Dejar respuesta

Please enter your comment!
Please enter your name here