ZHNavigationController 0.0.6

ZHNavigationController 0.0.6

charles维护。



ZHNavigationController

该框架可以快速地为每个控制器创建属于它的导航栏(navigatorBar),实现真正意义上的自定义,同时提供多种手势、多种转场动画的支持,可根据自己的需求自行选择。

内容

开始使用

能做什么

  • 为每个控制器定制 navigationBar
  • 为每个控制器添加 全屏侧滑返回手势,或 使用系统的左侧侧滑返回手势
  • 单独禁用一个页面的 侧滑返回手势
  • 禁用全局页面的 侧滑返回手势
  • 支持多种类型的侧滑返回交互动画效果
Gesture(手势相关) Function(功能) 支持(enable) 不支持(disable)
禁用手势 禁用全局手势 支持 -
禁用手势 禁用单个页面手势 支持 -
半屏侧滑 屏幕左侧边缘右滑 Pop 支持自定义样式,支持精度设置 不支持侧滑样式选择(默认使用自定义样式),不支持左滑 Push
全屏侧滑 屏幕右滑 Pop,左滑 Push 支持自定义样式,支持侧滑样式选择(默认使用自定义样式),支持左滑 Push (可选) 不支持精度设置。

特性 【实现思路】

大致要实现的效果如下

网易新闻

今日头条

为了满足多样化的导航栏需求,仅仅在控制器中修改导航栏的属性是难以达到上图效果的。因为多个控制器是共享同一个导航条的(同一个栈中的控制器)。那么我们该如何实现上述的效果,大致有三种实现思路


1. 第一种是使用自定义navigationBar.淘宝,网易新闻,等使用的是这种.
2. 第二种是用截图的办法,在push到下一个页面时,截取屏幕,在使用edgePan来pop时看到的就是背后的截图,也能实现这种效果.京东,天猫等使用的是这种.
3. 第三种是使用了一种比较特别,比较巧妙的办法实现的,为每一个控制器拥有自己独立的导航栏

具体的思路可以参考Jerry Tian的博客。该框架借鉴了第三种思路。采用导航控制器包裹的方式将填充到容器视图中,并将该容器视图作为我们导航控制器的根视图控制器,在每次push时都采用上述包裹的方式。

结构图

其中灰色区域的控制器就是你的控制器。