Comments (2)
1.11.0 版本支持 OC
from eachnavigationbar.
用法
导入
@import EachNavigationBar;
开启
给当前导航栈的 viewControllers 添加一个独立的导航栏。
只对当前导航栈有效,不影响其他导航栈。
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc];
nav.navigation_configuration.isEnabled = YES;
设置
导航栈全局配置
更多配置请看这里
Swift
nav.navigation.configuration.titleTextAttributes = [.foregroundColor: UIColor.blue]
nav.navigation.configuration.barTintColor = UIColor.red
nav.navigation.configuration.shadowImage = UIImage(named: "shadow")
nav.navigation.configuration.backBarButtonItem = .init(style: .image(UIImage(named: "back")), tintColor: UIColor.red)
nav.navigation.configuration.setBackgroundImage(UIImage(named: "nav"), for: .any, barMetrics: .default)
Objective-C
nav.navigation_configuration.titleTextAttributes = @{NSForegroundColorAttributeName: UIColor.blueColor};
nav.navigation_configuration.barTintColor = UIColor.redColor;
nav.navigation_configuration.shadowImage = [UIImage imageNamed:@"shadow"];
nav.navigation_configuration.backBarButtonItem = [[BackBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"back"]];
[nav.navigation_configuration setBackgroundImage:[UIImage imageNamed:@"nav"] for:UIBarPositionAny barMetrics:UIBarMetricsDefault];
每个控制器设置
普通设置
Swift
// 一般用法同系统组件
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))
Objective-C
self.navigation_bar.xxx
self.navigation_item.xxx
大标题设置(iOS 11.0+)
UINavigationController
// 开启大标题
nav.navigation.prefersLargeTitles()
UIViewController
// 显示或隐藏大标题
navigation.bar.prefersLargeTitles = true
// 设置大标题透明度
navigation.bar.setLargeTitleAlpha(0.5)
from eachnavigationbar.
Related Issues (20)
- 断言的必要性 HOT 7
- 导航右侧按钮样式无法全局配置
- 你好,侧滑返回的时候 可以拦截吗 就像 backitem 一样 提供一个 shouldBack 的接口出来
- Large Title会有重影
- 横竖屏下状态栏高度也不一样? HOT 1
- Demo 中点击next 会崩溃 HOT 1
- Does it work with UINavigation.appearance()?
- 代码出现大量报错信息 不知如何修改 HOT 7
- Xcode14 beta 编译报错 HOT 9
- 希望automaticallyAdjustsPosition可以全局配置
- Compiling for iOS 10.0, but module 'EachNavigationBar' has a minimum deployment target of iOS 11.0
- 横屏转回竖屏后,状态栏消失,导致整个bar上移重叠
- 隐藏状态栏后跳转到 next,bar与状态栏重叠
- 当UINavigationController套UINavigationController时,_UIBarBackground的高度会变高,各种相关的设置也会失效
- 未对ios16的导航栏做兼容。导致刚开启App的时候导航栏标题无法显示。
- 最新版本在模态弹出时候 导航栏高度低于系统原生导航栏高度
- iOS 16.3.1导航栏内容上移的问题
- storyboard创建常用的->NaVC->TabBarVC,头部title和底部itemTitle有问题。头部title无法设置
- 不支持添加系统的搜索框
- 怎么获取导航栏高度
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from eachnavigationbar.