شريط التنقل WeChat
WXNavigationBar
متاح من خلال CocoaPods. لتثبيته، ما عليك سوى إضافة السطر التالي إلى ملف Podfile الخاص بك:
use_frameworks !
pod ' WXNavigationBar ' , ' ~> 2.3.6 '
Carthage هو مدير تبعية لامركزي يبني تبعياتك ويزودك بأطر عمل ثنائية. لدمج WXNavigationBar في مشروع Xcode الخاص بك باستخدام Carthage، حدده في Cartfile الخاص بك:
github alexiscn/WXNavigationBar
يعد Swift Package Manager أداة لأتمتة توزيع كود Swift وهو مدمج في المترجم السريع. إنه في مرحلة التطوير المبكرة، لكن WXNavigationBar يدعم استخدامه على الأنظمة الأساسية المدعومة.
بمجرد إعداد حزمة Swift الخاصة بك، فإن إضافة WXNavigationBar باعتبارها تبعية تكون بنفس سهولة إضافتها إلى قيمة التبعيات في Package.swift الخاص بك.
dependencies: [
.package(url: "https://github.com/alexiscn/WXNavigationBar.git", .upToNextMajor(from: "2.3.6"))
]
تجعل WXNavigation
UINavigationBar الفعلي شفافًا وتضيف عرضًا كشريط تنقل مزيف إلى وحدة تحكم العرض.
لا يزال شريط التنقل الفعلي يتعامل مع أحداث اللمس، بينما يقوم شريط التنقل المزيف بإدارة طاقم العرض، على سبيل المثال: لون الخلفية، صورة الخلفية.
لذلك يمكنك استخدام شريط التنقل كالمعتاد. عندما تريد التعامل مع أشياء العرض، يمكنك استخدام 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 مرخص من معهد ماساتشوستس للتكنولوجيا. رخصة
你可以参考中文文档