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
속성을 통해 두 가지가 있습니다.
WXNavigationBar.NavBar
사용하여 WXNavigationBar
구성하면 모든 viewcontroller에 영향을 미칩니다.
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의 하위 클래스이므로 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 라이센스를 받았습니다. 특허
你可以参考中文文档