CustomNavigationBar

自定义的导航条
授权协议 MIT
开发语言 Objective-C
所属分类 iOS代码库、 导航条(Navigation Bar)
软件类型 开源软件
地区 不详
投 递 者 漆雕恺
操作系统 iOS
开源组织
适用人群 未知
 软件概览

一种自定义的导航条

之所以自定义导航条,原因有两个:

1、做同时兼容iOS6与iOS7的导航条时,使用原生导航条总是不顺手。于是想自定义一个,这样兼容iOS6与iOS7时,代码相对统一。另外,因为是自定义的,要做一些特殊的效果时比较容易控制(比如:导航条分成两行,段选择器合并到导航条内)。

2、一个个人原因,3.5寸屏幕的iOS7右滑返回时,导航条不动只是内容页面移动,感觉比较压抑。所以,希望兼顾原生的右滑返回,又可以使导航条在滑动时跟着移动。

------ 介绍 ------

1、CustomNaviBarView:自定义的导航条,继承自UIView。

- 将导航条分成左中右三个区域。默认在左区添加一个返回按钮。
- 提供创建导航条按钮的方法,可在外部自定义按钮添加到导航条上。
- 提供外部覆盖视图的方法,可在外部自定义一个视图,覆盖到导航条上。例如:CustomNaviBarSearchController

2、CustomNaviBarSearchController:搜索关键字输入框,可对接覆盖到CustomNaviBarView上。

- 提供两种导航条上的关键字输入框
    - 由按钮触发,点击按钮后显示输入框,结束后销毁输入框现实按钮。
    - 导航条一直显示输入框。
- 提供最近输入的关键字列表。

3、CustomNavigationController:继承自UINavigationController。

- 把系统导航条隐藏,以便显示自定义的导航条。
- 若想使用自定义导航条,导航控制器需继承自此类。

4、CustomViewController:继承自UIViewController。

- 封装了接入自定义导航条的方法,把具体业务与自定义导航条分开。
- 所有需使用自定义导航条的视图控制器可直接继承此类。

------ 用法 ------

以Demo为例:

1、AppNavigationController继承自CustomNavigationController。

2、所有视图控制器继承自CustomViewController。

3、一些公共定义被放在GlobalDefine.h中全局引用。

4、修改标题、设置自定义按钮。

[self setNaviBarTitle:@"Title"];     // 设置标题

[self setNaviBarLeftBtn:nil];       // 若不需要默认的返回按钮,直接赋nil

// 创建一个自定义的按钮,并添加到导航条右侧。
_btnNaviRight = [CustomNaviBarView createNormalNaviBarBtnByTitle:@"Next" target:self action:@selector(btnNext:)];
[self setNaviBarRightBtn:_btnNaviRight];

5、覆盖输入框

- 创建 CustomNaviBarView 对象。
- 当按钮触发时,通过 showTempSearchCtrl 方法显示输入框。
- 当输入框需固定在导航条时,通过 showFixationSearchCtrl 方法现实输入框。
- 通过 setRecentKeyword 方法写入最近使用的关键字数组。

 相关资料
  • 修改聊天页面导航栏背景色、导航栏上增加自定义按钮、修改导航栏上图标按钮颜色等 /** 聊天窗口导航栏 @param navigationBar 导航栏 */ - (void)ntalker_navigationBar:(UIView *)navigationBar { navigationBar.backgroundColor = [UIColor redColor];//修改导航栏背景色 }

  • Navbar 自定义导航栏 平台差异说明 App H5 微信小程序 支付宝小程序 百度小程序 头条小程序 QQ小程序 √ √ √ √ √ √ √ 基本使用 默认情况下,该组件只有向左的箭头,点击可以返回上一页,如果您想将自定义导航栏用在tabbar(不存在要返回的逻辑)页面,应该将is-back设置为false, 这样会隐藏左边的返回图标区域。 如果想在返回箭头的右边自定义类似"返回"字样,可以将

  • 我只想在我的wordpress主题菜单栏中添加一个快捷键,用于处理功能。 我尝试了在菜单中使用“

  • 问题内容: 我正在尝试在导航栏的中心添加自定义视图,并且正在使用以下代码对其进行测试: 我在视图控制器的viewDidLoad方法中进行设置,但是当我运行程序时,导航栏中似乎没有任何变化。 你能帮我吗? 问题答案: 这可行。初始化时给框架

  • 我在TableView中有CollectionView。一切都好,但是。当我想将我的单元格导航到另一个viewController时,我遇到了错误 Xcode show me self.NavigationController?.PushViewController(bookView,Animated:true)行出现错误。这是错误说明: RelatedBookTableViewCell是我的自定

  • 我正在将新的Jetpack Android导航与抽屉布局结合使用。当在抽屉XML中使用相同的ID并结合导航图中的片段时,一切都按预期工作。我设置了所有内容: 我现在还想触发自定义操作/代码,而不是在单击抽屉菜单中的项目时执行片段事务。我有一个菜单,单击“注销”时想注销用户:

  • 我有一个类似Android Studios的应用程序导航抽屉活动: 我的活动使用Android架构导航组件 到目前为止,一切正常。返回时问题开始: 让我们想象我从“家”——片段甲——导航 Android Studio示例正确运行:C- 我的实现没有:它只是弹出后台C- 我该怎么弥补? 缩小主布局: 导航图: 与我的主要活动onCreate相关的所有导航:

  • 我正在尝试用PageView在Flutter中实现一个自定义的BottomNavigationBar,用于在同一支架中包含有状态小部件的不同页面之间滑动。 虽然我可以点击navbar并更改页面,但我无法在更改指示所选页面的icon_button的颜色的同时实现pageview滑动手势。我能够完美地使用BottomNavigationBarItem来完成此操作,但我想使用自定义设计。 包含不同Ico