navigaitonBar的自定义设置
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的自定义设置的更多相关文章
- C#:实现快捷键自定义设置(转)
项目开发过程中,需要实现类似有道词典的软件设置中的自定义快捷键功能,如下图所示: 当我们相继按下Ctrl+Alt+M的时候,软件就会自动将快捷键显示在文本框中. 最终的效果如下图所示: private ...
- C#:实现快捷键自定义设置
代码下载 C#实现快捷键自定义设置 需求 项目开发过程中,需要实现类似有道词典的软件设置中的自定义快捷键功能,如下图所示: 当我们相继按下Ctrl+Alt+M的时候,软件就会自动将快捷键显示在文本框中 ...
- Netsharp产品标识自定义设置:产品名称、版权、LOGO等
阅读本文请先阅读Netsharp下载及环境搭建 Netsharp本身是一个业务基础平台,Netsharp本身基础上开发的业务产品对客户才有价值,客户看到的产品应该不是Netsharp而是具体的业务产品 ...
- PHP集成环境自定义设置PHP版本,同时运行多个php版本,700个PHP版本随时切换,一键开启常用模块。
本文采用我自己开发的纯绿色版WAMP环境(我将这个WAMP环境命名为PHPWAMP) (PHPWAMP默认集成VC,不需要单独安装) 那么什么是WAMP环境?WAMP这个词是什么意思? Windows ...
- Html中<Hr>标签、样式的使用和自定义设置
<Hr>标签中样式的使用和自定义设置... -------------------- ====================== 已经测试过了可以用的Hr样式: <!--这是一部分 ...
- xpadder教程:自定义设置游戏手柄的图片
关于xpadder设置按键的教程,网上已经很多,我就不凑这个热闹了.这里介绍的是如何自定义设置手柄的图片,就是按钮的背景图,如下图所示: 步骤: 1)准备一张背景图 注意:格式必须是24位色的BMP位 ...
- Android 解决通过自定义设置打开热点后手机搜索不到热点的问题。
开发过程中出现了通过自定义设置打开热点后手机搜索不到热点的问题. 后来通过观看 /data/misc/wifi 目录下的 hostapd.conf 文件,发现是 interface=ap0 d ...
- Asp.Net 自定义设置Http缓存示例(一)
一.自定义图片输出,启用客户端的图片缓存处理 代码示例: string path = Request.Url.LocalPath; if (path != null) { path = path.To ...
- 关闭IE8的首次运行自定义设置
方法一:顺着IE8的提示,一步一步的了解看完或设置完等的,它“推荐”的你应该做的事,然后重新设置首页就行了. 方法二:开始->运行->输入:gpedit.msc->用户配置-> ...
随机推荐
- javascript DOM艺术
一.DOM基础1.节点(node)层次Document--最顶层的节点,所有的其他节点都是附属于它的.DocumentType--DTD引用(使用<!DOCTYPE>语法)的对象表现形式, ...
- Overloads和Overrides在元属性继承上的特性
元属性继承可以使用IsDefined函数进行判断,先写出结论 如果使用Overrides,则元属性可以继承,除非在使用IsDefined时明确不进行继承判断,如 pFunction.IsDefined ...
- Python自动化运维之22、JavaScript
一.简介 JavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处理.学习了htm ...
- JS动画理论
动画(Animation) 动画意味着随着时间而变化,尤其指视觉上的变化,包括位置.形态等的变化.运动基本上表现为物体随时间,发生位置上的变化:形态基本表现为大小.颜色.透明度.形状等随时间的变化. ...
- HTML部分标签的含义(3)
1,<a>标签,链接到另一个页面 语法:<a href="目标网址" title=“鼠标滑过显示的文本”>链接显示的文本</a> title属性 ...
- centos es2.x安装
#把下面这个放到es的server路径下,这个是rpm安装改了下. # # init.d / servicectl compatibility (openSUSE) # if [ -f /etc/rc ...
- coroutine协程
如果你接触过lua这种小巧的脚本语言,你就会经常接触到一个叫做协程的神奇概念.大多数脚本语言都有对协程不同程度的支持.但是大多编译语言,如C/C++,根本就不知道这样的东西存在.当然也很多人研究如何在 ...
- pycharm console 控制台乱码的解决
- Node.js工具模块
在Node.js的模块库中提供实用的模块数量. 这些模块都是很常见的,并同时开发基于任何节点的应用程序频繁使用. S.N. 模块的名称和说明 1 OS Module提供基本的操作系统相关的实用功能 2 ...
- BZOJ 1055 玩具取名
Description 某人有一套玩具,并想法给玩具命名.首先他选择WING四个字母中的任意一个字母作为玩具的基本名字.然后他会根据自己的喜好,将名字中任意一个字母用“WING”中任意两个字母代替,使 ...