navigaitonBar的自定义设置

navigationBar介绍:

navigationbar就是一个导航视图控制器上面的导航栏。

如何设置这个navigationbar?

首先我们来探讨如何来获取navigationbar?

我们可以使用下面两个方法来获取我们当前页面的navigationbar

	self.navigationController.navigationBar
[UINavigationBar appearance]

获得了这个navigationbar之后,我们可以在这个属性上面进行自定义设置:

设置bar背景颜色方法:

[self.navigationBar setBackgroundColor:[UIColor redColor]];

设置bar的颜色:

[self.navigationBar setBarTintColor:[UIColor redColor]];

设置bar背景图片方法:

[self.navigationBar setBackgroundImage:[UIImage imageNamed:@"Ellipse 4"] forBarMetrics:UIBarMetricsDefault];

要设置navigationBar的title的属性的时候,我们可以使用setTitleTextAttributes方法来设置。

    UIColor *color = [UIColor yellowColor];
NSShadow *shadow = [[NSShadow alloc] init];
[shadow setShadowColor:[UIColor blueColor]];
[shadow setShadowOffset:CGSizeMake(1, 1)];
UIFont *font = [UIFont fontWithName:@"HelveticaNeue-CondensedBlack" size:22]; [self.navigationBar setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:color,NSForegroundColorAttributeName, shadow, NSShadowAttributeName, font, NSFontAttributeName , nil]];

在这个方法中,我们首先title的属性用NSDictionary的value和key表示出来。然后在这个方法中提取出这些属性,设置到这个titleText中去。这里我们需要注意一下,就是这个方法是覆盖设置的,就是说我们先设置了一个字体,然后我们在后来又用这个方法来设置阴影,那么这个字体设置就没有效果了的。

下面是我们的属性的名,我们方便我们在编写的时候可以查看,便于属性的设置:

NSForegroundColorAttributeName//设置字体颜色
NSShadowAttributeName//设置阴影
NSFontAttributeName//设置字体

上面方法中的shadow设置的介绍:

    NSShadow *shadow = [[NSShadow alloc] init];
// 设置阴影的颜色
[shadow setShadowColor:[UIColor blueColor]];
// 设置阴影的位置,就是阴影偏移原来位置的坐标
[shadow setShadowOffset:CGSizeMake(1, 1)];

如何设置VavigationBar上的按钮:

下面是在NavigationBar中设置一个按钮的方法,这里需要注意下设置button的方法不能在navigatonController中的rootViewCotroller中有效。

设置代码的方法为:

UIBarButtonItem *buttonItem3 = [[UIBarButtonItem alloc] init];
[buttonItem3 setTitle:@"back1"];
[buttonItem3 setTarget:self];
[buttonItem3 setAction:@selector(backButtonAction)];
self.navigationItem.leftBarButtonItem = buttonItem3;

这个左边的按钮是我们刚刚创建的。

我们也可以用代码创建好几个button:

UIBarButtonItem *buttonItem2 = [[UIBarButtonItem alloc] init];
[buttonItem2 setTitle:@"back"];
[buttonItem2 setTarget:self];
[buttonItem2 setAction:@selector(rightBarButton2)]; UIBarButtonItem *buttonItem1 = [[UIBarButtonItem alloc] init];
[buttonItem1 setTitle:@"left1"];
[buttonItem1 setWidth:10];
[buttonItem1 setImage:[UIImage imageNamed:@"Ellipse 4"]];
[buttonItem1 setTarget:self];
[buttonItem1 setAction:@selector(rightBarButton1)];
self.navigationItem.rightBarButtonItems = @[buttonItem1, buttonItem2];

这个右边的两个button就是我们刚刚创建的。

我们也可以title的位置自定义View,例如下面的代码:

UIButton *buttonItem5 = [[UIButton alloc] initWithFrame:CGRectMake(120, 20, 40, 40)];
[buttonItem5 setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[buttonItem5 setTitle:@"test" forState:UIControlStateNormal];
[buttonItem5 addTarget:self action:@selector(titleViewButton) forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.titleView = buttonItem5;

看看这个代码的本质,self.navigationItem.titleView其实是系统给我提供的一个UIView的类型的属性,因此我们可以设置一个UIVIew类型(或者其子类)的实例,设置好将其添加到self.navigationItem.titleView的属性里面,因此看来这个属性的自定义的自由度是非常大的。例如刚刚的代码:我们在代码中设置的UIButton的就是一个UIView的子类。因此,我们可以使用这个button来设置这个属性。




navigaitonBar的自定义设置的更多相关文章

  1. C#:实现快捷键自定义设置(转)

    项目开发过程中,需要实现类似有道词典的软件设置中的自定义快捷键功能,如下图所示: 当我们相继按下Ctrl+Alt+M的时候,软件就会自动将快捷键显示在文本框中. 最终的效果如下图所示: private ...

  2. C#:实现快捷键自定义设置

    代码下载 C#实现快捷键自定义设置 需求 项目开发过程中,需要实现类似有道词典的软件设置中的自定义快捷键功能,如下图所示: 当我们相继按下Ctrl+Alt+M的时候,软件就会自动将快捷键显示在文本框中 ...

  3. Netsharp产品标识自定义设置:产品名称、版权、LOGO等

    阅读本文请先阅读Netsharp下载及环境搭建 Netsharp本身是一个业务基础平台,Netsharp本身基础上开发的业务产品对客户才有价值,客户看到的产品应该不是Netsharp而是具体的业务产品 ...

  4. PHP集成环境自定义设置PHP版本,同时运行多个php版本,700个PHP版本随时切换,一键开启常用模块。

    本文采用我自己开发的纯绿色版WAMP环境(我将这个WAMP环境命名为PHPWAMP) (PHPWAMP默认集成VC,不需要单独安装) 那么什么是WAMP环境?WAMP这个词是什么意思? Windows ...

  5. Html中<Hr>标签、样式的使用和自定义设置

    <Hr>标签中样式的使用和自定义设置... -------------------- ====================== 已经测试过了可以用的Hr样式: <!--这是一部分 ...

  6. xpadder教程:自定义设置游戏手柄的图片

    关于xpadder设置按键的教程,网上已经很多,我就不凑这个热闹了.这里介绍的是如何自定义设置手柄的图片,就是按钮的背景图,如下图所示: 步骤: 1)准备一张背景图 注意:格式必须是24位色的BMP位 ...

  7. Android 解决通过自定义设置打开热点后手机搜索不到热点的问题。

    开发过程中出现了通过自定义设置打开热点后手机搜索不到热点的问题. 后来通过观看  /data/misc/wifi  目录下的  hostapd.conf  文件,发现是 interface=ap0 d ...

  8. Asp.Net 自定义设置Http缓存示例(一)

    一.自定义图片输出,启用客户端的图片缓存处理 代码示例: string path = Request.Url.LocalPath; if (path != null) { path = path.To ...

  9. 关闭IE8的首次运行自定义设置

    方法一:顺着IE8的提示,一步一步的了解看完或设置完等的,它“推荐”的你应该做的事,然后重新设置首页就行了. 方法二:开始->运行->输入:gpedit.msc->用户配置-> ...

随机推荐

  1. github的package.json内容

    补充:npm的init命令生成package.json Name 必须字段. 小提示: 不要在name中包含js, node字样: 这个名字最终会是URL的一部分,命令行的参数,目录名,所以不能以点号 ...

  2. YII 小部件实现的注册表

    今天来进行用户注册功能yii集成了很多验证框架,framework/validators下面,这个文件夹的最后一个文件CValidator.php 是总的验证信息,根据请求参数决定需要那种验证 如:u ...

  3. python 编程之计算器

    作业: 使用正则表达式和递归实现计算器功能. 实现: 1.实现带括号的计算 2.实现指数.加减乘除求余等功能 一.实例说明: 本实例自己写了个版本,但依旧存在一点bug,例:-2-2等计算问题,故最后 ...

  4. 那些年被我坑过的Python——山外有山(第四章)

    装饰器: 定义: 本质是函数,(装饰其他函数)就是为其他函数添加附加功能原则: 1.不能修改被装饰的函数的源代码 2.不能修改被装饰的函数的调用方式 优点: 装饰器带来的最直观的好处:减少对函数的细化 ...

  5. D题 - A+B for Input-Output Practice (III)

    Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u   Description Your ...

  6. centos es2.x安装

    #把下面这个放到es的server路径下,这个是rpm安装改了下. # # init.d / servicectl compatibility (openSUSE) # if [ -f /etc/rc ...

  7. php开发环境安装配置(1)

    个人记录高手请勿喷! 下载xampp我这是个中文版的可以自己搜索下载安装别的版本也行. 双击下载的xampp会提示路径相当于解压到指定的路径 到对应路径去可看到如下: 打开 2.配置: 成功之后会如下 ...

  8. 转:PHP 5.4中的traits

    原文来自于:http://www.cnblogs.com/thinksasa/archive/2013/05/16/3081247.html PHP 5.4中的traits,是新引入的特性,中文还真不 ...

  9. LA 3998 Prime k-tuple

    题意:如果K个相邻素数p1,p2,p3.....pk满足pk-p1=s,称这些素数组成一个距离为s的素数K元组,输入a,b,k,s,输出区间[a,b]内距离为s的素数k元组的个数. 思路:先打到500 ...

  10. 堆和栈的区别【zz】

    一.预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1.栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等.其操作方式类似于数据结构中的栈.2. ...