Eu tenho tentado remover a borda navigationBars sem sorte. Eu pesquisei e as pessoas parecem dizer para definir shadowImage e BackgroundImage para zero, mas isso não funciona no meu caso.
Meu código
self.navigationController?.navigationBar.barTintColor = UIColor(rgba: "#4a5866")
self.navigationController?.navigationBar.setBackgroundImage(UIImage(named: ""), forBarMetrics: UIBarMetrics.Default)
self.navigationController?.navigationBar.shadowImage = UIImage(named: "")
ilustração:
fonte
Swift 4 e Swift 5
Removendo borda:
Restaurando borda:
fonte
isso removerá completamente a imagem da sombra
fonte
Com o Swift 2, você pode fazer o seguinte:
Arquivo AppDelegate
Aplicativo func interno (..., didFinishLaunchingWithOptions launchOptions: ...)
para Swift 3:
fonte
Basta escrever isso na extensão do UINavigationBar
E, na sua opinião, Controlador ...
E para desfazer isso para qualquer viewController, basta passar false.
fonte
Defina
barStyle
como.Black
antes de definir a tonalidade:fonte
Swift 5
Ao usar setBackgroundImage / shadowImage para ocultar a linha do cabelo, há um pequeno atraso. Este método remove o atraso. Crédito para Chameleon Framework . Este é o método que eles usam (no ObjC)
fonte
A resposta de Luca Davanzo é ótima, mas não funciona no iOS 10. Eu a alterei para funcionar no iOS 10 e abaixo.
Você também pode estender o UINavigationController e cancelar isso.
removeFromSuperview()
na linha não funcionará no iOS 10, então apenas defino o alfa como 0 para que esta chamada seja compatível em qualquer lugar.fonte
height >= 1.0
. Nos modelos de iPhone que possuem uma tela retina 3x (por exemplo, 8 Plus, XR ...), a linha do cabelo tem uma altura de 0,33.Para remover a borda do UINavigationBar no Swift 3+, use:
fonte
para swift 3
no
viewDidLoad
métodofonte
Só isso funcionou para mim,
Ref.
fonte
Atualizado para o Swift 4 caso alguém esteja se perguntando
É ainda menos detalhado agora.
fonte
É assim que você deseja fazer sem alterar a cor do plano de fundo:
NOTA: Isso pode falhar em um aplicativo de produção. Aparentemente, o NavigationBar não gosta que sua visualização desapareça
fonte
A resposta aceita funcionou para mim, mas notei quando queria que a imagem da sombra reaparecesse ao voltar ou avançar para outro vc, houve um piscar visível na barra de navegação.
Usando esse método
navigationController?.navigationBar.setValue(true, forKey: "hidesShadow")
no viewWillAppear, a barra de sombra está oculta no atual controlador de exibição visível.Usando esses 2 métodos
em viewWillDisappear o piscar ainda acontece, mas somente quando a imagem de sombra reaparece e não a barra de navegação.
fonte
para o swift3, você deve escrever de maneira ligeiramente diferente:
fonte
Esta é uma versão simplificada da resposta de Gaurav Chandarana .
fonte
Delegado do aplicativo
fonte
Se você deseja remover apenas a linha inferior e manter a cor sólida da barra de navegação, adicione essas linhas de código em viewDidLoad: Swift 3, 4:
Paz!
fonte
A linha de borda é uma UIImageView e a remoção de uma subvisão que é uma imageView removerá barButtonItems com UIImageView. O código abaixo o ajudará a removê-lo. Espero que isso ajude alguém que enfrentou um problema como eu.
A borda UIImageView tem apenas 0,5 de altura; portanto, esse código remove apenas isso.
fonte
No AppDelegate , isso mudou globalmente o formato da NavBar e remove a linha inferior / borda:
Não conseguiu implementar nada diferente em um VC específico, mas isso ajudará 90% das pessoas
fonte
esta é a resposta na rápida base 3 da resposta Nate Cook
fonte
iOS 11 e Swift 4 Você deve tentar seguir se deseja remover a borda, mas não tornar a barra de navegação translúcida
self.navigationBar.shadowImage = UIImage()
fonte
em seu navigationController personalizado, adicione estas linhas:
Nota importante
a última linha é importante se você usar o método viewDidLoad () da primeira linha porque o navigationController deve redesenhar a barra de navegação, mas você pode usá-lo facilmente sem layoutIfNeeded () no método viewWillAppear () antes de desenhar a barra de navegação
fonte
Método mais rápido de Jack Chen:
Usando:
fonte
fonte