要运行示例项目,首先克隆 repo 并在 Example 目录运行 pod install
。
- iOS 9.0
- Swift 4.2
EachNavigationBar 可通过 CocoaPods 或者 Carthage 安装, 简单的添加下面一行到你的 Podfile 或者 Cartfile:
pod 'EachNavigationBar'
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))
// 开启大标题
navigation.bar.prefersLargeTitles = true
// 显示模式
navigation.item.largeTitleDisplayMode = .always
// 设置大标题透明度
navigation.bar.setLargeTitleAlpha(0.5)
和使用系统导航栏完全一致。
Pircate, gao497868860@163.com
EachNavigationBar 可在 MIT 许可证下使用。有关更多信息,请参阅许可证文件。