前言:
从网上找了很多Demo对于导航栏上的分段选择非常的少。所以自己,就怀着一颗,不知道能否封装好的心,细细的封装一下。demo地址
目的:
我在外,留两个接口,一个是该分段标题的标题数组,一个是分段标题所对的控制器数组。效果要达到,点击每一个标题,滚动到响应的控制器界面。滚动响应的控制器界面能够,相应的滚动到相应标题。调用只要调用该控制器即可。
展示效果
具体逻辑走向
具体步骤如下:
1. 配置基本的应用场景。
1> 嵌入一个导航控制器,配置一个item,实现其点击事件
2> 重整一个承载分段选择的容量控制器
3> 点击实现跳转这个容量控制器
4> show in finder进行项目结构的调整
如下图所示:
2. 修理改造容量控制器 - 自定义导航栏。
我们都知道,要想达到,导航控制器上产生特殊的效果,有一种方法就是设置titleView,还有一种方法就是,当需求满足不了时,我们就必须进行自定义导航栏,否则实现不了。
今天主要讲解的就是自定义导航栏。
1> 把当前需要自定义导航栏控制器中的导航栏隐藏
2> 创建一个UIview,高度64,颜色灰色位置(0,0)添加到原导航栏位置
3> 创建一个返回按钮,并设置背景图片,添加到leftItem位置,添加点击事件。
4> 实现点击事件
注意:导航栏的是否隐藏应该在viewWillAppear:(BOOL)animated方法中设置
3.自定义一个分段选择的UIView添加到自定义导航栏中
1> 初始化
2> 传入一个数组,并根据其个数向自定义View上添加button
- 求出每个按钮的宽度
- 循环遍历添加按钮
- 因为要添加滚动轴,需要把按钮的高度-2,留出这个线的位置
- 外部设置接口,用来设置按钮的样式,以及标题名称
- 设置下滑线
- 点击按钮设置传入tag,设置下滑线的走向
- 设置代理,将选中按钮的tag值传出去,做事情
- 整理代码
具体封装整理如下
4.创造滑动视图与按钮进行联动
1> 添加滚动视图
2> 在按钮的代理方法里,滚动视图与按钮的联动
3> 设置滚动的时候,改变标题按钮的tag值
4> 准备接口,最后部署
具体封装整理如下
具体用法
这是第一次封装的那么细,虽然好长时间没找到工作了,但是也要不断的学习,即使iOS几乎饱和了,但要对得起自己!这一次,最大的收获,让我学会了用一个控制器管理多个控制器****互相交流~