EachNavigationBar为每个视图控制器自定义导航条
EachNavigationBar:每个视图控制器的自定义导航条。
示例
要运行示例项目,首先克隆 repo 并在 Example 目录运行 pod install
。
版本要求
- iOS 9.0
- Swift 4.2
安装
EachNavigationBar 可通过 CocoaPods 或者 Carthage 安装, 简单的添加下面一行到你的 Podfile 或者 Cartfile:
Podfile
pod 'EachNavigationBar'
Cartfile
github "Pircate/EachNavigationBar"
用法
导入
Swift
import EachNavigationBar
开启
给当前导航栈的 viewControllers 添加一个独立的导航栏。
只对当前导航栈有效,不影响其他导航栈。
let nav = UINavigationController(rootViewController: vc) nav.navigation.configuration.isEnabled = true
设置
导航栈全局配置
不要通过 navigationController.navigationBar 去设置全局属性!!!
更多配置请看这里
nav.navigation.configuration.titleTextAttributes = [.foregroundColor: UIColor.blue] nav.navigation.configuration.barTintColor = UIColor.red nav.navigation.configuration.shadowImage = UIImage(named: "shadow") nav.navigation.configuration.setBackgroundImage(UIImage(named: "nav"), for: .any, barMetrics: .default) nav.navigation.configuration.backItem = UINavigationController.Configuration.BackItem(style: .title("返回")) nav.navigation.configuration.prefersLargeTitles = true nav.navigation.configuration.largeTitle.displayMode = .always
每个控制器设置
普通设置
// 一般用法同系统组件 navigation.bar -> EachNavigationBar -> UINavigationBar navigation.item -> UINavigationItem // 隐藏导航栏 navigation.bar.isHidden = true // 设置导航栏透明度 navigation.bar.alpha = 0.5 // 设置标题透明度 navigation.bar.setTitleAlpha(0.5) // 设置 barButtonItem 透明度 navigation.bar.setTintAlpha(0.5) // 如果 barButtonItem 是自定义视图 navigation.item.leftBarButtonItem?.customView?.alpha = 0.5 // 如果 barButtonItem 自定义了 tintColor navigation.item.leftBarButtonItem?.tintColor = navigation.item.leftBarButtonItem?.tintColor?.withAlphaComponent(0.5) // 移除毛玻璃效果 navigation.bar.isTranslucent = false // 隐藏底部阴影 navigation.bar.isShadowHidden = true // 设置状态栏样式 navigation.bar.statusBarStyle = .lightContent // 设置返回按钮 navigation.bar.backBarButtonItem = .init(style: .title("Back"), tintColor: .red) // 允许返回事件 navigation.bar.backBarButtonItem.shouldBack = { item in // do something return false } // 返回事件之前回调 navigation.bar.backBarButtonItem.willBack = { // do something } // 返回事件之后回调 navigation.bar.backBarButtonItem.didBack = { // do something } // 如果想自定义导航栏位置,请将下面属性设为 false navigation.bar.automaticallyAdjustsPosition = false // 导航栏附加高度 navigation.bar.additionalHeight = 14 // 导航栏附加视图 navigation.bar.additionalView = UIView() // 导航栏阴影 navigation.bar.shadow = Shadow( color: UIColor.black.cgColor, opacity: 0.5, offset: CGSize(width: 0, height: 3))
大标题设置(iOS 11.0+)
// 开启大标题 navigation.bar.prefersLargeTitles = true // 显示模式 navigation.item.largeTitleDisplayMode = .always // 设置大标题透明度 navigation.bar.setLargeTitleAlpha(0.5)
关于约束
和使用系统导航栏完全一致。
评论
CustomNavigationBar自定义的导航条
一种自定义的导航条之所以自定义导航条,原因有两个:1、做同时兼容iOS6与iOS7的导航条时,使用原生导航条总是不顺手。于是想自定义一个,这样兼容iOS6与iOS7时,代码相对统一。另外,因为是自定义
CustomNavigationBar自定义的导航条
0
CustomNavigationBar自定义的导航条
一种自定义的导航条之所以自定义导航条,原因有两个:1、做同时兼容iOS6与iOS7的导航条时,使用原
CustomNavigationBar自定义的导航条
0
DZNWebViewControlleriOS 视图控制器
DZNWebViewController是一个iPhone/iPad迷你的WebKit浏览器控制器,带有导航控件和上下文特性,对应用内浏览器非常有用。特征加载HTTP链接或本地HTML。导航工具:后退
DZNWebViewControlleriOS 视图控制器
0
XLPagerTabStripiOS 视图控制器
XLPagerTabStrip是一个容器视图控制器,它可以让你很容易的在视图控制器集合间转换。它可以显示当前的、之前的、之后的视图控制器的交互导航。
XLPagerTabStripiOS 视图控制器
0
TNColorScrollViewControllerObjective-C 视图控制器
TNColorScrollViewController 是 Objective-C 视图控制器,可以
TNColorScrollViewControllerObjective-C 视图控制器
0
YZSwipeBetweenViewControlleriOS 视图控制器
YZSwipeBetweenViewController 是一个视图控制器,包括一个包含多个视图控制
YZSwipeBetweenViewControlleriOS 视图控制器
0
GDWebViewControlleriOS 视图控制器
GDWebViewController是WKWebview浏览器视图控制器,Web页面导航,使用Swift编写。
GDWebViewControlleriOS 视图控制器
0