Barra de navegación de WeChat
WXNavigationBar
está disponible a través de CocoaPods. Para instalarlo, simplemente agregue la siguiente línea a su Podfile:
use_frameworks !
pod ' WXNavigationBar ' , ' ~> 2.3.6 '
Carthage es un administrador de dependencias descentralizado que construye tus dependencias y te proporciona marcos binarios. Para integrar WXNavigationBar en su proyecto Xcode usando Carthage, especifíquelo en su Cartfile:
github alexiscn/WXNavigationBar
Swift Package Manager es una herramienta para automatizar la distribución de código Swift y está integrada en el compilador Swift. Está en desarrollo inicial, pero WXNavigationBar admite su uso en plataformas compatibles.
Una vez que haya configurado su paquete Swift, agregar WXNavigationBar como dependencia es tan fácil como agregarlo al valor de dependencias de su Package.swift.
dependencies: [
.package(url: "https://github.com/alexiscn/WXNavigationBar.git", .upToNextMajor(from: "2.3.6"))
]
WXNavigation
hace transparente la UINavigationBar real y agrega una vista como una barra de navegación falsa al controlador de vista.
La barra de navegación real todavía maneja los eventos táctiles, la barra de navegación falsa hace los pentagramas de visualización, por ejemplo: color de fondo, imagen de fondo.
Entonces usas la barra de navegación como de costumbre. cuando quieras manejar las cosas de visualización, usas WXNavigationBar
En tu AppDelegate.swift
import WXNavigationBar
func application ( _ application : UIApplication , didFinishLaunchingWithOptions launchOptions : [ UIApplication . LaunchOptionsKey : Any ] ? ) -> Bool {
// ...
WXNavigationBar . setup ( )
}
Puede personalizar WXNavigationBar
si es necesario. Hay dos formas de configurar WXNavigationBar: mediante WXNavigationBar.NavBar
o mediante las propiedades UIViewController
.
El uso de WXNavigationBar.NavBar
para configurar WXNavigationBar
afectará a todos los controladores de vista.
En tu AppDelegate.swift
import WXNavigationBar
func application ( _ application : UIApplication , didFinishLaunchingWithOptions launchOptions : [ UIApplication . LaunchOptionsKey : Any ] ? ) -> Bool {
// ...
// Customize WXNavigationBar if needed (Optional)
// WXNavigationBar.NavBar.backImage = UIImage(named: "xxx")
}
Puede configurar las siguientes opciones:
/// Back Image for Navigation Bar
public static var backImage : UIImage ? = Utility . backImage
/// Use custom view to create back button.
/// Note: You do not need to add tap event to custom view. It's handled in WXNavigationBar.
public static var backButtonCustomView : UIView ? = nil
/// Background Image for NavigationBar
public static var backgroundImage : UIImage ? = nil
/// Background color for NavigationBar
public static var backgroundColor : UIColor = UIColor ( white : 237.0 / 255 , alpha : 1.0 )
/// Tint Color for NavigationBar
public static var tintColor = UIColor ( white : 24.0 / 255 , alpha : 1.0 )
/// Shadow Image for NavigationBar
public static var shadowImage : UIImage ? = UIImage ( )
/// Enable fullscreen pop gesture
public static var fullscreenPopGestureEnabled = false
También puede configurar un controlador de vista específico anulando las propiedades admitidas por WXNavigationBar
.
Puede configurar el color de fondo de la barra de navegación.
/// Background color of fake NavigationBar
/// Default color is UIColor(white: 237.0/255, alpha: 1.0)
override var wx_navigationBarBackgroundColor : UIColor ? {
return . white
}
Puede configurar el fondo de la barra de navegación usando la imagen.
override var wx_navigationBarBackgroundImage : UIImage ? {
return UIImage ( named : " icons_navigation_bar " )
}
Si desea utilizar la barra de navegación borrosa del sistema:
override var wx_useSystemBlurNavBar : Bool {
return true
}
Al configurar wx_barBarTintColor
, en realidad estás configurando barTintColor
de navigationController?.navigationBar
override var wx_barBarTintColor : UIColor ? {
return . red
}
Al configurar wx_baTintColor
, en realidad estás configurando tintColor
de navigationController?.navigationBar
override var wx_barTintColor : UIColor ? {
return . black
}
Puede especificar la imagen de sombra de la barra de navegación para un controlador de vista específico (por ejemplo, línea de color sólido o línea de color degradado):
override var wx_shadowImage : UIImage ? {
return UIImage ( named : " icons_navigation_bar_shadow_line " )
}
Puede crear una imagen de sombra a partir del color, esta propiedad sobrescribirá wx_shadowImage
override var wx_shadowImageTintColor : UIColor ? {
return . red
}
Puede especificar la imagen posterior de la barra de navegación para un controlador de vista específico:
override var wx_backImage : UIImage ? {
return UIImage ( named : " icons_view_controller_back_image " )
}
Puede especificar el botón Atrás con vista personalizada:
override var wx_backButtonCustomView : UIView ? {
let label = UILabel ( )
label . text = " back "
label . textAlignment = . center
return label
}
override var wx_disableInteractivePopGesture : Bool {
return true
}
override var wx_fullScreenInteractivePopEnabled : Bool {
return false
}
override wx_interactivePopMaxAllowedDistanceToLeftEdge : CGFloat {
return view . bounds . width * 0.5
}
Aquí hay algunas sugerencias de uso avanzadas para WXNavigationBar
.
Hay varias formas de hacer que la barra de navegación sea transparente.
wx_navigationBar . alpha = 0
wx_navigationBar . isHidden = true
override var wx_navigationBarBackgroundColor : UIColor ? {
return . clear
}
alfa y oculto hacen que wx_navigationBar sea invisible, mientras que backgroundColor simplemente cambia el color de wx_navigationBar
Puede actualizar dinámicamente la barra de navegación, como actualizar dinámicamente mientras se desplaza.
Consulte MomentViewController
para obtener más detalles.
wx_navigationBar
es una subclase de UIView, por lo que puedes hacer con wx_navigationBar
cualquier cosa que se pueda hacer con UIView.
Si desea hacer algo cuando el usuario toca el botón Atrás, puede anular wx_backButtonClicked
en su controlador de vista. Por ejemplo, puede presentar una alerta cuando el usuario toca el botón Atrás.
override func wx_backButtonClicked ( ) {
let alert = UIAlertController ( title : " Are you sure to exit " , message : nil , preferredStyle : . alert )
alert . addAction ( UIAlertAction ( title : " OK " , style : . default , handler : { [ weak self ] _ in
self ? . navigationController ? . popViewController ( animated : true )
} ) )
alert . addAction ( UIAlertAction ( title : " Cancel " , style : . cancel , handler : { _ in
} ) )
present ( alert , animated : true , completion : nil )
}
wx_navigationBar
se puede superponer cuando agrega dinámicamente un controlador de vista secundario. Por lo tanto, es su responsabilidad poner wx_navigationBar
al frente.
// addChild(controller) or addSubview
view . bringSubviewToFront ( wx_navigationBar )
WXNavigationBar tiene licencia MIT. LICENCIA
你可以参考中文文档