系统的NavigationBar局限太大,而且现在我要做的navigationBar需要四个按钮,一个Label,一个ImageView,所以不能用系统默认的。

  刚刚咨询了一个高手,她的建议是,将系统的NavigationBar隐去,但是还是用navigationCntroller去导航,然后用自己写的UIView去充当NavigationBar的角色。原来UI是可以这么做的,现在先试试。等会将做法和思路再整理出来。

//20141020更新

上述的方式虽然自由度蛮大,但是效果还是没有系统自带的navigationBar来的流畅。

所以找到了以下方法去实现所要的功能。

1、导航栏的中间大按钮

self.navigationItem.titleView = customView

这个是加入了自定义的UIView,所以理论上大部分的UIView都是可以加进来的。

2、title左右加入按钮们

     CustomUIView *leftView = [[CustomUIViewalloc] initWithFrame:CGRectMake(, , width, height)]; 
UIBarButtonItem *leftButtons = [[UIBarButtonItem alloc] initWithCustomView:leftView];
self.navigationItem.leftBarButtonItem = leftButtons;

右边按钮一样的方式,CustomUIView再根据自己的大小来布局自己内部subview的大小和位置

3、navigationBar的加入背景

a、平铺背景

_navigationBarBG.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"menu_bg"]];

b、插入图片

    [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"menu_bg"] forBarMetrics:UIBarMetricsDefault];

关于自定义的NavigationBar的更多相关文章

  1. iOS8 自定义navigationbar 以及 UIBarButtonItem 边距问题

    一.自定义navigationbar - (void)initNavigationBar{ [self.navigationController setNavigationBarHidden:YES] ...

  2. Android开发之自定义组件和接口回调

    说到自定义控件不得不提的就是接口回调,在Android开发中接口回调用的还是蛮多的.在这篇博客开始的时候呢,我想聊一下iOS的自定义控件.在iOS中自定义控件的思路是继承自UIView, 在UIVie ...

  3. 隐藏NavigationBar 带来的坑

    一.场景介绍 现在大多数APP 都有一个需求,就是隐藏某一个页面的NavigationBar.很多开发者直接   [self.navigationController setNavigationBar ...

  4. navigaitonBar的自定义设置

    navigaitonBar的自定义设置 navigationBar介绍: navigationbar就是一个导航视图控制器上面的导航栏. 如何设置这个navigationbar? 首先我们来探讨如何来 ...

  5. QLViewController在iOS7下的自定义

    原文来自:QLViewController在iOS7下的自定义 原先的项目使用了quicklook framework,用于在iPhone上浏览各类文件,除了txt文本会有乱码的问题,其他文件的显示都 ...

  6. 粉笔网iPhone端使用的第三方开源库

    粉笔网iPhone端使用的第三方开源库 前言 最近有朋友问我粉笔网 iPhone 端使用了哪些第三方的开源库.我在这儿整理了一下,分享给大家. ASIHttpRequest ASIHttpReques ...

  7. ios7适配一些问题以及64位32位

    ios7适配一些问题(http://www.cocoachina.com/ios/20130703/6526.html) 1.iOS应用如何实现64位的支持 http://www.codeceo.co ...

  8. iOS开发tips-UINavigationBar的切换

    概述 在iOS系统中,如果控制器是以push方式进行管理的话,那么事实上多个控制器是共享的同一个导航栏.当然iOS系统的设计无可厚非,但是国内的应用经常会遇到很多个性的设计,就比如说A push到 B ...

  9. 《iOS 11 安全区域适配总结》

    本文来自于腾讯Bugly公众号(weixinBugly),作者:sonialiu,未经作者同意,请勿转载,原文地址:http://mp.weixin.qq.com/s/W1_0VrchCO50owhJ ...

随机推荐

  1. random类的使用

    小栗子a如下: string[] punch = new[] { "石头", "剪刀", "布" }; string myPunch; pu ...

  2. cordova 开发属于自己的插件---android

    还是需要开发出自己的插件的... 我的cordova  version is 4.0.0 1.需要新建一个文件夹为 myplugin 1.1在myplugin文件夹下 新建 plugin.xml文件 ...

  3. ios学习开发阶段小结

    总结一下,开发了1个月10天的ios经验. 先晒成绩单:两个实验性质的app,一个wifi管家,一个图片壁纸软件 技术小结: 1.熟悉基本的各种ns语法:#import,#include,@class ...

  4. 使用SSL确保通信中的数据安全

    #region Server /// <summary> /// 用于保存非对称加密(数字证书)的公钥 /// </summary> private string public ...

  5. Oracle 中 根据值 查询 所在 表和字段

    -------------------- -- 这里是查询 数字型字段值 /*declare CURSOR cur_query IS select table_name, column_name, d ...

  6. Android IOS WebRTC 音视频开发总结(五六)-- 如何测试网络性能?

    本文主要介绍如何测试网络性能,文章来自博客园RTC.Blacker,欢迎关注微信公众号blacker,更多详见www.rtc.help 网络性能直接决定了视频通话效果,比如qq,很多时候我们我们觉得通 ...

  7. Javascript 常用系统内置函数

    1:在数组指定位置插入元素 array.splice(2, 0, "three");   //在索引2的位置,删除0个元素后,插入元素“three” 例子: // 原来的数组 va ...

  8. decode行转列,case when,

    1.行转列 转之前:

  9. mysql实体关系(mysql学习五)

    实体关系  表设计 1:1 两个实体表内,存在相同的主键字段 如果记录的主键值等于另一个关系表内记录的主键值,则两条记录的对应为一一对应 优化上称为垂直分割 1:n 一个实体对应多个其他实体(一个班级 ...

  10. 在CentOS6.5下安装Memcached

    CentOS 6.5 安装软件非常方便, yum install memcached