Barre de navigation WeChat
WXNavigationBar
est disponible via CocoaPods. Pour l'installer, ajoutez simplement la ligne suivante à votre Podfile :
use_frameworks !
pod ' WXNavigationBar ' , ' ~> 2.3.6 '
Carthage est un gestionnaire de dépendances décentralisé qui construit vos dépendances et vous fournit des frameworks binaires. Pour intégrer WXNavigationBar dans votre projet Xcode à l'aide de Carthage, spécifiez-le dans votre Cartfile :
github alexiscn/WXNavigationBar
Le Swift Package Manager est un outil permettant d'automatiser la distribution du code Swift et est intégré au compilateur Swift. Il en est aux premiers stades de développement, mais WXNavigationBar prend en charge son utilisation sur les plates-formes prises en charge.
Une fois votre package Swift configuré, ajouter WXNavigationBar en tant que dépendance est aussi simple que de l'ajouter à la valeur des dépendances de votre Package.swift.
dependencies: [
.package(url: "https://github.com/alexiscn/WXNavigationBar.git", .upToNextMajor(from: "2.3.6"))
]
WXNavigation
rend la UINavigationBar réelle transparente et ajoute une vue en tant que fausse barre de navigation au contrôleur de vue.
La barre de navigation réelle gère toujours les événements tactiles, la fausse barre de navigation gère les équipes d'affichage, par exemple : backgroundColor, backgroundImage.
Vous utilisez donc la barre de navigation comme d'habitude. lorsque vous souhaitez gérer les éléments d'affichage, vous utilisez WXNavigationBar
Dans votre AppDelegate.swift
import WXNavigationBar
func application ( _ application : UIApplication , didFinishLaunchingWithOptions launchOptions : [ UIApplication . LaunchOptionsKey : Any ] ? ) -> Bool {
// ...
WXNavigationBar . setup ( )
}
Vous pouvez personnaliser WXNavigationBar
si nécessaire. Il existe deux manières de configurer WXNavigationBar : via WXNavigationBar.NavBar
ou via les propriétés UIViewController
.
L'utilisation WXNavigationBar.NavBar
pour configurer WXNavigationBar
affectera tous les contrôleurs de vue.
Dans votre 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")
}
Vous pouvez configurer les options suivantes :
/// 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
Vous pouvez également configurer un contrôleur de vue spécifique en remplaçant les propriétés prises en charge WXNavigationBar
.
Vous pouvez configurer la couleur d'arrière-plan de la barre de navigation.
/// Background color of fake NavigationBar
/// Default color is UIColor(white: 237.0/255, alpha: 1.0)
override var wx_navigationBarBackgroundColor : UIColor ? {
return . white
}
Vous pouvez configurer l’arrière-plan de la barre de navigation à l’aide de l’image.
override var wx_navigationBarBackgroundImage : UIImage ? {
return UIImage ( named : " icons_navigation_bar " )
}
Si vous souhaitez utiliser la barre de navigation floue de la même manière que le système :
override var wx_useSystemBlurNavBar : Bool {
return true
}
En définissant wx_barBarTintColor
, vous définissez réellement barTintColor
de navigationController?.navigationBar
override var wx_barBarTintColor : UIColor ? {
return . red
}
En définissant wx_baTintColor
, vous définissez réellement tintColor
de navigationController?.navigationBar
override var wx_barTintColor : UIColor ? {
return . black
}
Vous pouvez spécifier une image d'ombre de la barre de navigation pour un contrôleur de vue spécifique (par exemple : ligne de couleur unie ou ligne de couleur dégradée) :
override var wx_shadowImage : UIImage ? {
return UIImage ( named : " icons_navigation_bar_shadow_line " )
}
Vous pouvez créer une image d'ombre à partir de la couleur, cette propriété écrasera wx_shadowImage
override var wx_shadowImageTintColor : UIColor ? {
return . red
}
Vous pouvez spécifier l'image arrière de la barre de navigation pour un contrôleur de vue spécifique :
override var wx_backImage : UIImage ? {
return UIImage ( named : " icons_view_controller_back_image " )
}
Vous pouvez spécifier le bouton de retour avec une vue personnalisée :
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
}
Voici quelques suggestions d’utilisation avancées pour WXNavigationBar
.
Il existe plusieurs façons de rendre la barre de navigation transparente.
wx_navigationBar . alpha = 0
wx_navigationBar . isHidden = true
override var wx_navigationBarBackgroundColor : UIColor ? {
return . clear
}
alpha et caché rendent wx_navigationBar invisible, tandis que backgroundColor change simplement la couleur de wx_navigationBar
Vous pouvez mettre à jour dynamiquement la barre de navigation, par exemple mettre à jour dynamiquement pendant le défilement.
Voir MomentViewController
pour plus de détails.
wx_navigationBar
est une sous-classe de UIView, vous pouvez donc faire avec wx_navigationBar
tout ce qui peut être fait avec UIView.
Si vous souhaitez faire quelque chose lorsque l'utilisateur appuie sur le bouton Précédent, vous pouvez remplacer wx_backButtonClicked
dans votre contrôleur de vue. Par exemple, vous pouvez présenter une alerte lorsque l'utilisateur appuie sur le bouton de retour.
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
peut être superposé lorsque vous ajoutez dynamiquement un contrôleur de vue enfant. Il est donc de votre responsabilité de mettre wx_navigationBar
au premier plan.
// addChild(controller) or addSubview
view . bringSubviewToFront ( wx_navigationBar )
WXNavigationBar est sous licence MIT. LICENCE
你可以参考中文文档