一款超级简单的导航条管理工具。完全自定义导航条。没有`UINavigationBar` 和 `UINavigationItem` 这两个类。完全是对`UIView`的操作。
所有操作都能一行代码,操作之间完全独立,互不影响。
# 集成方法
### 手动导入
1. 将工程中的`EasyNavigation`拖入工程中
2. 包含`'EasyNavigation.h`的头文件
3. 使用:
1. 设置全局信息:`EasyNavigationOptions *options = [EasyNavigationOptions shareInstance].titleColor = [UIColor blackColor];`
2. 设置全局信息自定义:`EasyNavigationController *navVC = [[EasyNavigationController alloc]initWithRootViewController:[ViewController new]];`
3. 在当前控制器上添加一个标题:`[self.navigationView setTitle:@"我是标题"];`
4. 在当前导航条右边添加一个按钮:` [self.navigationView addRightButtonWithTitle:@"提交" clickCallBack:^(UIView *view) { NSLog(@"提交按钮被点击!");//notice:这个callback会强引用控制器,请用weakself. }];`
4. ......
### cocoapods安装
1. 在你的podfile文件中加入这句话 `pod 'EasyNavigation','~>1.0'`
2. 包含头文件`#import <EasyNavigation/EasyNavigation.h>`
3. 和`手动导入`一样
# 使用详解
__配置全局导航栏属性__ 这一步操作可以确保每一个控制器上头都有一个自定义的导航条。
* (1) 包涵头文件
* (2) (可省略)改变一些导航条的全局设置,但是如果省略的就会默认使用其单例里面的设置信息
* (3) 用navigationcontroller包裹controller的时候,使用EasyNavigationController。如果是tabbar的话,则tabbar的每一个item都需要使用EasyNavigationController。如果使用的xib,则需要把xib中的导航控制器改成EasyNavigationController。
```
//(1)包涵头文件
#import "EasyNavigation.h"
```
```
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//(2)(可省略)改变一些导航条的全局设置,但是如果省略的就会默认使用其单例里面的设置信息
EasyNavigationOptions *options = [EasyNavigationOptions shareInstance];
options.titleColor = [UIColor blackColor];
options.buttonTitleFont = [UIFont systemFontOfSize:18];
options.navBackgroundImage = [UIImage imageNamed:@"nav_background_image.png"];
//(3) 用navigationcontroller包裹controller的时候,使用EasyNavigationController。如果是tabbar的话,则tabbar的每一个item都需要使用EasyNavigationController。如果使用的xib,则需要把xib中的导航控制器改成EasyNavigationController。
EasyNavigationController *navVC = [[EasyNavigationController alloc]initWithRootViewController:[ViewController new]];
self.window.rootViewController = navVC ;
return YES;
}
```
## 导航栏上的控件增删改操作
下面所有的操作,首先需要包含头文件
`#import "EasyNavigation.h"`
#### 1,添加标题
```
[self.navigationView setTitle:@"我是标题"];
//需要改变标题上的文字
[self.navigationView setTitle:@"我是改变后的标题"];
//改变标题上面的属性
self.navigationView.titleLabel.font = [UIFont systemFontOfSize:12] ;
self.navigationView.titleLabel.textColor = [UIColor redColor];
//需要添加一个titleview
[self.navigationView addtitleView:customView];
```
#### 2,添加按钮
```
//添加一个文字按钮 ,可以用全局变量记下这个rightButton。在你接下来的操作中使用这个按钮,
self.rightButton = [self.navigationView addRightButtonWithTitle:@"添加" clickCallBack:nil];
//在某处使用这个按钮
[self.rightButton setTitle:@"改变了" forState:UIControlStateNormal];
```
```
//添加一个带图片的按钮,如果这个按钮只有点击事件,可以这样写,更加简洁。
[self.navigationView addRightButtonWithImage:kImage(@"button_normal.png") hightImage:kImage(@"button_select.png") clickCallBack:^(UIView *view) {
NSLog(@"点击了“图片按钮按钮”");
}];
```
```
//添加自定义按钮(clickCallback会对self强引用)
kWeakSelf(self)
UIButton *addButton =[UIButton buttonWithType:UIButtonTypeCustom];
[addButton setImage:kImage(@"nav_btn_back.png") forState:UIControlStateNormal];
[addButton setTitle:@"返回" forState:UIControlStateNormal];
[self.navigationView addLeftView:addButton clickCallback:^(UIView *view) {
[weakself.navigationController popViewControllerAnimated:YES];
}];
```
#### 3,添加/移除一个左右两边视图
添加/移除左右两边的视图后,都会重新布局两边的控件。
```
//添加视图
UIView *leftView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 40, 40)];
[self.navigationView addLeftView:addButton clickCallback:^(UIView *view) {
NSLog(@"click on leftView !");
}];
//移除视图
[self.navigationView removeLeftView:self.navigationView.leftButton];
```
#### 4,添加一个view
* view直接添加到导航栏上(不是两边控件)不会重新布局控件
* 添加上view的frame不会受到导航条的约束。但是根据点击事件传递原理,它只会在导航条里面接受到事件。
```
__block UIView *view = [[UIView alloc]initWithFrame:CGRectMake(100, -10, SCREEN_WIDTH-180, NAV_HEIGHT + 20)];
view.backgroundColor = [UIColor purpleColor];
[self.navigationView addSubview:view clickCallback:^(UIView *view) {
[view removeFromSuperview];
}];
```
#### 5,添加/移除导航条
* 删除操作会把当前的导航条彻底重内存中删除。如果在以后还会使用建议使用` self.navigationView.hidden = YES ;`隐藏导航条
* 添加操作会重新创建一个新导航条,需要自己往上面添加子控件。
```
if (self.navigationView) {
[self.navigationView removeFromSuperview];
self.navigationView = nil ;
}
```
```
if (!self.navigationView) {
EasyNavigationView *nav = [[EasyNavigationView alloc]initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH , NAV_HEIGHT)];
[self setNavigationView:nav];
[self.view addSubview:nav];
}
```
## 透明度改变
#### 1,设置导航条为透明背景
```
[self.navigationView setNavigationBackgroundAlpha:0];
//当不想让导航条下面的细线变为透明
self.navigationView.lineView.alpha = 1 ;
```
#### 2,导航条颜色渐变
```
//self.tableView 为支持导航条渐变的scrollview,
//NAV_HEIGHT为开始渐变的位置,NAV_HEIGHT*4为结束渐变的位置。在其中间的移动会均匀变化
[self.navigationView navigationAlphaSlowChangeWithScrollow:self.tableView];
[self.navigationView navigationAlphaSlowChangeWithScrollow:self.tableView start:NAV_HEIGHT end:NAV_HEIGHT*4];
```
## 导航条隐藏
#### 1,无导航条
可以移除,或者隐藏导航条
```
#if 1//以下两个2选1
if (self.navigationView) {
[self.navigationView removeFromSuperview];
self.navigationView = nil ;
}
#else
self.navigationView.hidden = YES ;
#endif
```
#### 2,导航条随scrollview滚动而慢慢隐藏
```
//self.tableView 为支持导航条渐变的scrollview,
//NAV_HEIGHT 为开始渐变self.tableView需要滚动的距离,也就是说,只有在self.tableView滚动NAV_HEIGHT后导航条才开始移动。
//0.5 为导航条向上滚动的速度。(它的值为:导航条滚动距离/self.tableView滚动距离)
//NO 为是否需要在statusBar下面停止。(statusBar颜色为导航条的背景)
[self.navigationView navigationSmoothScroll:self.tableView start:NAV_HEIGHT speed:0.5 stopToStatusBar:NO];
```
#### 3,导航条在scrollview滚动某个位置时以`UIView`动画隐藏
```
//self.tableView 为支持导航条渐变的scrollview,
//NAV_HEIGHT 为触发导航条隐藏的点。也就是当scrollview的contentOffset.y值操作这个数的时候,导航条就会隐藏
//NO 为是否需要在statusBar下面停止。(statusBar颜色为导航条的背景)
[self.navigationVie
没有合适的资源?快使用搜索试试~ 我知道了~
一款超级简单的导航条管理工具

共143个文件
h:35个
m:34个
png:21个

0 下载量 193 浏览量
2024-06-19
16:09:00
上传
评论
收藏 7.07MB ZIP 举报
温馨提示
手动导入 1. 将工程中的`EasyNavigation`拖入工程中 2. 包含`'EasyNavigation.h`的头文件 3. 使用: 1. 设置全局信息:`EasyNavigationOptions *options = [EasyNavigationOptions shareInstance].titleColor = [UIColor blackColor];` 2. 设置全局信息自定义:`EasyNavigationController *navVC = [[EasyNavigationController alloc]initWithRootViewController:[ViewController new]];` 3. 在当前控制器上添加一个标题:`[self.navigationView setTitle:@"我是标题"];` 4. 在当前导航条右边添加一个按钮:` [self.navigationView addRightButtonWithTitle:@"提交" clickCallBack:^(UIView *view)
资源推荐
资源详情
资源评论




























收起资源包目录





































































































共 143 条
- 1
- 2
资源评论


小蜜蜂vs码农
- 粉丝: 2413
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 2023年物联网竞赛平台设备.doc
- 2023项目管理实训报告范文.docx
- PLC控制系统的故障诊断和维护.doc
- c语言编程题及答案.doc
- Excel2010培训教程(最新-免费-完整版).ppt
- Q MJSP 0001 S-2021 冲调方便食品系列.pdf
- 大数据存储技术大数据基础讲义.ppt
- 2023年银行业消费者权益保护网络竞赛答题完整版.doc
- Photoshop中路径使用详解.doc
- 2023年考研考研计算机专业课自测试题及答案.doc
- Windows永恒之蓝勒索病毒wannacry处理的指南.doc
- 骑飞OVOV7670 CMOS摄像头模块模组使用说明
- GPS车辆自动化调度系统生产管理措施.doc
- 大学电子商务专业求职信5篇.docx
- 2023年上半年计算机等级考试一级试题及答案.doc
- 2023年Javascript学习笔记.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
