iOS-Main-自定义导航栏分段选择的封装详解

前言:

从网上找了很多Demo对于导航栏上的分段选择非常的少。所以自己,就怀着一颗,不知道能否封装好的心,细细的封装一下。demo地址

目的:

我在外,留两个接口,一个是该分段标题的标题数组,一个是分段标题所对的控制器数组。效果要达到,点击每一个标题,滚动到响应的控制器界面。滚动响应的控制器界面能够,相应的滚动到相应标题。调用只要调用该控制器即可。

展示效果

效果图.gif

具体逻辑走向
导航栏上分段选择的封装.png

具体步骤如下:
1. 配置基本的应用场景。
1> 嵌入一个导航控制器,配置一个item,实现其点击事件
2> 重整一个承载分段选择的容量控制器
3> 点击实现跳转这个容量控制器
4> show in finder进行项目结构的调整
如下图所示:


2. 修理改造容量控制器 - 自定义导航栏。
我们都知道,要想达到,导航控制器上产生特殊的效果,有一种方法就是设置titleView,还有一种方法就是,当需求满足不了时,我们就必须进行自定义导航栏,否则实现不了。
今天主要讲解的就是自定义导航栏。
1> 把当前需要自定义导航栏控制器中的导航栏隐藏
2> 创建一个UIview,高度64,颜色灰色位置(0,0)添加到原导航栏位置
3> 创建一个返回按钮,并设置背景图片,添加到leftItem位置,添加点击事件。
4> 实现点击事件
注意:导航栏的是否隐藏应该在viewWillAppear:(BOOL)animated方法中设置
1

2

3

3.自定义一个分段选择的UIView添加到自定义导航栏中
1> 初始化
2> 传入一个数组,并根据其个数向自定义View上添加button

  1. 求出每个按钮的宽度
  2. 循环遍历添加按钮
  3. 因为要添加滚动轴,需要把按钮的高度-2,留出这个线的位置
  4. 外部设置接口,用来设置按钮的样式,以及标题名称
  5. 设置下滑线
  6. 点击按钮设置传入tag,设置下滑线的走向
  7. 设置代理,将选中按钮的tag值传出去,做事情
  8. 整理代码
    具体封装整理如下
    1

    2

    3


    4.创造滑动视图与按钮进行联动
    1> 添加滚动视图
    2> 在按钮的代理方法里,滚动视图与按钮的联动
    3> 设置滚动的时候,改变标题按钮的tag值
    4> 准备接口,最后部署
    具体封装整理如下
    1

    2

    3

    4

    5

    6

    具体用法

    这是第一次封装的那么细,虽然好长时间没找到工作了,但是也要不断的学习,即使iOS几乎饱和了,但要对得起自己!这一次,最大的收获,让我学会了用一个控制器管理多个控制器****互相交流~
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,294评论 4 61
  • 内容抽屉菜单ListViewWebViewSwitchButton按钮点赞按钮进度条TabLayout图标下拉刷新...
    皇小弟阅读 46,957评论 22 665
  • 关注我微信可以抽奖zi1891190
    zi1891190阅读 179评论 0 0
  • 我很悲哀却这么清醒的认识到年已经从我的生命里褪去,从前几年开始就失去了所有的味道。也就是我们通常说的年味。到底是为...
    君素言阅读 342评论 0 1
  • 2017年9月17日,如是家人李建英,第34天种种子日志 发心:我今不是为了我个人而闻思修行,而是为了六道轮回一切...
    若嘉阅读 235评论 0 3