es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Establecer programáticamente el color y altura de la barra de navegación en iOS15.

Soy nuevo en Swift y estoy construyendo una vista de navegación. A continuación, es lo que me encontré.

currentView

  1. El color de fondo de la barra de navegación es solo parcialmente amarillo. ¿Cómo puedo hacer que la sección que está encima también sea amarilla?

section should be yellow

A continuación se muestra el código que utilicé en mi viewController. También lo intenté en el navigation controller, pero no funciona.

self.navigationController?.navigationBar.backgroundColor = UIColor.yellow

  1. ¿Cómo ajustar la altura de la barra de navegación? El botón de búsqueda (navigationItem.titleView) se encuentra justo en el centro de la barra de navegación y quiero darle más espacio ajustando la altura de la barra de navegación. El siguiente código es lo que intenté, pero no funciona 🙁

self.tabBarController?.tabBar.frame.size.height = 50

Gracias.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    1. El color de fondo de la barra de navegación es solo parcialmente amarillo. ¿Cómo puedo hacer que la sección encima de ella también sea amarilla?

    Para hacer que toda la sección encima de la barra de navegación sea amarilla, puedes establecer la propiedad barTintColor de UINavigationBar al color deseado. Aquí tienes un ejemplo de fragmento de código:

    self.navigationController?.navigationBar.barTintColor = .yellow
    

    Esto establecerá el color de fondo de toda la barra de navegación en amarillo.

    2. ¿Cómo se establece la altura de la barra de navegación?

    Para establecer la altura de la barra de navegación, necesitas crear una subclase personalizada de UINavigationBar y anular su método sizeThatFits. Aquí tienes un ejemplo de fragmento de código:

    class CustomNavigationBar: UINavigationBar {
        override func sizeThatFits(_ size: CGSize) -> CGSize {
            let newSize = CGSize(width: self.frame.width, height: 100) // Establece aquí la altura deseada
            return newSize
        }
    }
    

    Luego, puedes establecer la propiedad navigationBarClass de tu instancia de UINavigationController en CustomNavigationBar para usar la barra de navegación personalizada. Aquí tienes un ejemplo de fragmento de código:

    self.navigationController?.navigationBarClass = CustomNavigationBar.self
    

    Esto establecerá la altura de la barra de navegación en el valor deseado. Ten en cuenta que este enfoque solo funciona en iOS 11 y versiones posteriores.

Comments are closed.