He estado buscando e intentando durante días, pero como es algo nuevo no hay mucha información disponible (o no puedo encontrarla).

De todos modos, estoy tratando de hacer uso de las nuevas funciones de la barra de navegación en iOS 11, pero quiero poner un logotipo y un título grande (de cada ViewController) en mi NavBar. Algo parecido a la siguiente captura de pantalla:

enter image description here

¿Cómo es posible implementar esto?

Sugerencia adicional:

Para el mismo app en iOS 10 configuré el logo para que se muestre en lugar de titleView en NavBar pero ahora en la versión más reciente queremos agregar el título también.

Gracias de antemano

1
Abed Naseri 15 nov. 2017 a las 19:09

2 respuestas

La mejor respuesta

Sin su muestra de código, es difícil decir qué le sale mal, pero esto simplemente funciona:

override func viewDidLoad() {
    super.viewDidLoad()

    if #available(iOS 11, *) {
        navigationController?.navigationBar.prefersLargeTitles = true
        navigationItem.largeTitleDisplayMode = .always
        title = "Your title"
    }

    let titleImageView = NavigationImageView()
    titleImageView.image = UIImage(named: "yourImageName")
    navigationItem.titleView = titleImageView
}

EDITAR : para establecer un tamaño personalizado para la vista del título, puede crear una subclase de su UIView (UIImageView) y anular sizeThatFits

class NavigationImageView: UIImageView {
    override func sizeThatFits(_ size: CGSize) -> CGSize {
        return CGSize(width: 50, height: 50)
    }
}
2
Au Ris 17 nov. 2017 a las 08:46

¿Intentaste configurar una imagen de fondo para tu barra de navegación? Me gusta esto:

// Set Navigation bar background Image
let navBgImage:UIImage = UIImage(named: "[image.jpg]")!
self.navigationController!.navigationBar.setBackgroundImage(navBgImage, for: .default)
0
Thomas Wang 15 nov. 2017 a las 23:26