WeChatナビゲーションバー
WXNavigationBar
CocoaPods を通じて利用できます。これをインストールするには、次の行を Podfile に追加するだけです。
use_frameworks !
pod ' WXNavigationBar ' , ' ~> 2.3.6 '
Carthage は、依存関係を構築し、バイナリ フレームワークを提供する分散依存関係マネージャーです。 Carthage を使用して WXNavigationBar を Xcode プロジェクトに統合するには、Cartfile で指定します。
github alexiscn/WXNavigationBar
Swift パッケージ マネージャーは、Swift コードの配布を自動化するツールであり、Swift コンパイラーに統合されています。これは開発初期段階ですが、WXNavigationBar はサポートされているプラットフォームでの使用をサポートしています。
Swift パッケージをセットアップしたら、WXNavigationBar を依存関係として追加するのは、Package.swift の依存関係の値に追加するのと同じくらい簡単です。
dependencies: [
.package(url: "https://github.com/alexiscn/WXNavigationBar.git", .upToNextMajor(from: "2.3.6"))
]
WXNavigation
実際の UINavigationBar を透明にし、ビューを偽のナビゲーション バーとしてビュー コントローラーに追加します。
実際のナビゲーション バーは引き続きタッチ イベントを処理し、偽のナビゲーション バーは表示スタッフ (backgroundColor、backgroundImage など) を処理します。
したがって、通常どおりナビゲーション バーを使用します。表示関係を扱いたいときはWXNavigationBar
使います
AppDelegate.swift
内
import WXNavigationBar
func application ( _ application : UIApplication , didFinishLaunchingWithOptions launchOptions : [ UIApplication . LaunchOptionsKey : Any ] ? ) -> Bool {
// ...
WXNavigationBar . setup ( )
}
必要に応じて、 WXNavigationBar
カスタマイズできます。 WXNavigationBar を構成するには、 WXNavigationBar.NavBar
を使用する方法とUIViewController
プロパティを使用する方法の 2 つがあります。
WXNavigationBar.NavBar
使用してWXNavigationBar
を構成すると、すべてのビューコントローラーに影響します。
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")
}
次のオプションを設定できます。
/// 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
WXNavigationBar
サポートするプロパティをオーバーライドすることで、特定のビュー コントローラーを構成することもできます。
ナビゲーションバーの背景色を設定できます。
/// Background color of fake NavigationBar
/// Default color is UIColor(white: 237.0/255, alpha: 1.0)
override var wx_navigationBarBackgroundColor : UIColor ? {
return . white
}
画像を使用してナビゲーションバーの背景を設定できます。
override var wx_navigationBarBackgroundImage : UIImage ? {
return UIImage ( named : " icons_navigation_bar " )
}
システムと同じようにぼやけたナビゲーション バーを使用したい場合:
override var wx_useSystemBlurNavBar : Bool {
return true
}
wx_barBarTintColor
を設定すると、実際にnavigationController?.navigationBar
のbarTintColor
を設定することになります。
override var wx_barBarTintColor : UIColor ? {
return . red
}
wx_baTintColor
を設定すると、実際にnavigationController?.navigationBar
のtintColor
を設定することになります。
override var wx_barTintColor : UIColor ? {
return . black
}
特定のビュー コントローラーのナビゲーション バーの影画像を指定できます(例: 単色の線またはグラデーション色の線)。
override var wx_shadowImage : UIImage ? {
return UIImage ( named : " icons_navigation_bar_shadow_line " )
}
カラーから影画像を作成できます。このプロパティはwx_shadowImage
を上書きします。
override var wx_shadowImageTintColor : UIColor ? {
return . red
}
特定のビュー コントローラーのナビゲーション バーの背面画像を指定できます。
override var wx_backImage : UIImage ? {
return UIImage ( named : " icons_view_controller_back_image " )
}
カスタムビューで戻るボタンを指定できます。
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
}
ここでは、 WXNavigationBar
の事前の使用上の提案をいくつか示します。
ナビゲーション バーを透明にする方法はいくつかあります。
wx_navigationBar . alpha = 0
wx_navigationBar . isHidden = true
override var wx_navigationBarBackgroundColor : UIColor ? {
return . clear
}
alpha と hidden は wx_navigationBar を非表示にしますが、backgroundColor は wx_navigationBar の色を変更するだけです
スクロール中に動的に更新するなど、ナビゲーション バーを動的に更新できます。
詳細については、 MomentViewController
を参照してください。
wx_navigationBar
は UIView のサブクラスであるため、UIView で実行できることはすべてwx_navigationBar
で実行できます。
ユーザーが戻るボタンをタップしたときに何かをしたい場合は、ビューコントローラーでwx_backButtonClicked
をオーバーライドできます。たとえば、ユーザーが戻るボタンをタップしたときにアラートを表示できます。
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
、子ビュー コントローラーを動的に追加するときにオーバーレイできます。したがって、 wx_navigationBar
前面に表示するのはあなたの責任です。
// addChild(controller) or addSubview
view . bringSubviewToFront ( wx_navigationBar )
WXNavigationBar は MIT ライセンスを取得しています。ライセンス
你可参考中文文档