WeChat NavigationBar
WXNavigationBar
มีให้บริการผ่าน CocoaPods หากต้องการติดตั้ง เพียงเพิ่มบรรทัดต่อไปนี้ใน Podfile ของคุณ:
use_frameworks !
pod ' WXNavigationBar ' , ' ~> 2.3.6 '
Carthage เป็นผู้จัดการการพึ่งพาแบบกระจายอำนาจที่สร้างการพึ่งพาของคุณและมอบเฟรมเวิร์กไบนารีให้กับคุณ หากต้องการรวม WXNavigationBar เข้ากับโปรเจ็กต์ Xcode ของคุณโดยใช้ Carthage ให้ระบุใน Cartfile ของคุณ:
github alexiscn/WXNavigationBar
Swift Package Manager เป็นเครื่องมือสำหรับการกระจายโค้ด 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
การใช้ 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
แสดงว่าคุณได้ตั้ง barTintColor
ของ navigationController?.navigationBar
override var wx_barBarTintColor : UIColor ? {
return . red
}
โดยการตั้งค่า wx_baTintColor
คุณได้ตั้งค่า tintColor
ของ navigationController?.navigationBar
จริง ๆ
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
}
อัลฟ่าและซ่อนทำให้ wx_navigationBar มองไม่เห็นในขณะที่สีพื้นหลังเพียงแค่เปลี่ยนสีของ wx_navigationBar
คุณสามารถอัปเดตแถบนำทางแบบไดนามิกได้ เช่น อัปเดตแบบไดนามิกขณะเลื่อน
ดู MomentViewController
สำหรับรายละเอียด
wx_navigationBar
เป็นคลาสย่อยของ UIView ดังนั้นคุณจึงสามารถทำอะไรก็ได้ด้วย wx_navigationBar
ที่สามารถทำได้ด้วย UIView
หากคุณต้องการทำอะไรบางอย่างเมื่อผู้ใช้แตะปุ่มย้อนกลับ คุณสามารถแทนที่ 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 ใบอนุญาต
คุณ可以参考中文文档