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来设置这个属性。

时间: 2024-10-11 23:26:56

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

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

需求 项目开发过程中,需要实现类似有道词典的软件设置中的自定义快捷键功能,如下图所示: 当我们相继按下Ctrl+Alt+M的时候,软件就会自动将快捷键显示在文本框中. 最终的效果如下图所示: 核心代码如下所示: private void keyDown(object sender, KeyEventArgs e) { StringBuilder keyValue = new StringBuilder(); keyValue.Length = 0; keyValue.Append(""

SF-Custom Setting(自定义设置)

可以用Custom Setting(自定义设置)的地方: Formula Fields Validation Rules Apex Code Web Services API 可以Custom Setting的类型: List:一个Custom Object的一个Label,会对应多个值.根据选择的参数不同,选出不同的值. 常用方法: getAll() getInstance(dataSetName) getValues(dataSetName) Hierarchy:一个Custom Objec

Edittext样式的自定义设置(自定义边框和边框颜色)

Edittext改变边框颜色 第一步:为了更好的比较,准备两个一模一样的EditText(当Activity启动时,焦点会在第一个EditText上,如果你不希望这样只需要写一个高度和宽带为0的EditText即可避免,这里就不这么做了),代码如下: <EditText android:layout_width="fill_parent" android:layout_height="36dip" android:background="@drawa

OS&amp;nbsp;X使用之自定义设置中的图…

OS X的系统偏好设置允许你对系统的各个方面进行自定义,可以轻松地找到各个系统设置.那么如何自定义系统偏好设置中的图标布局呢?包括如何管理/调整系统偏好设置中的图标排列,还有从视图中显示和隐藏单个图标. 以下是最初始的系统便好设置: X使用之自定义设置中的图标布局(图标显示隐藏及排序)" TITLE="OS X使用之自定义设置中的图标布局(图标显示隐藏及排序)" /> X使用之自定义设置中的图标布局(图标显示隐藏及排序)" TITLE="OS X使用

visual studio code教程:基础使用和自定义设置

一.界面介绍 1.1 界面介绍 1.2 文件夹和文件的打开 文件-->打开文件夹/打开文件 1.3 新建文件/文件夹 新建文件: a. 文件-->新建文件: b. 按Ctrl+n; c. 点文件夹名后面的+号图标. 新建文件夹: 点文件夹名后面的+号图标 1.4 拆分编辑器(分列) 快加键:Ctrl+\ 点击拆分编辑器图标(右上角)进行拆分编辑器.拆分完毕之后,可以通过鼠标点击拖动文件到相应的列.多列同时浏览免去多文件来回切换 1.5 集成终端 终端对开发者来说不可或缺,Visual Stud

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

开发过程中出现了通过自定义设置打开热点后手机搜索不到热点的问题. 后来通过观看  /data/misc/wifi  目录下的  hostapd.conf  文件,发现是 interface=ap0 driver=nl80211 ctrl_interface=/data/misc/wifi/hostapd ssid=Anffff channel=6 ieee80211n=1 hw_mode=g ignore_broadcast_ssid=1 wowlan_triggers=any max_num_

xpadder教程:自定义设置手柄的图片

关于xpadder设置按键的教程,网上已经很多,我就不凑这个热闹了.这里介绍的是如何自定义设置手柄的图片,就是按钮的背景图,如下图所示: 步骤: 1)准备一张背景图 注意:格式必须是24位色的BMP位图,尺寸必须是512x256像素.否则xpadder软件会提示:Invalid controller image detected 我准备了个样本,不太懂电脑的同学可以下载使用: https://files.cnblogs.com/files/hatemath/xpadder_bg.zip 下载下来

Typora——自定义设置

Typora提供自定义设置,在偏好设置里面,有一个主题文件夹,如果对界面的样式进行设定,可以添加一个css文件,命名规范是 github.user.css,下面代码会对h1~h4进行自动序列化 body{ counter-reset: h1 } h1{ counter-reset: h1 } h2{ counter-reset: h2 } h3{ counter-reset: h3 } h2:before{ counter-increment: h1; content: counter(h1)"

CAD转换PDF格式,自定义设置PDF的尺寸、颜色、质量

我们在日常办公工作中,经常需要把CAD 转换成PDF格式,但是有时候会发现,转换完成的PDF图纸的显示是不清晰的.可能尺寸.颜色.质量都有问题,这时候我们该如何才能解决这一问题呢?今天小编就为大家迅捷CAD编辑器来操作,这样我没问我呢可以在操作CAD转PDF的同时,就能够自定义设置PDF的尺寸.颜色和质量.具体步骤如下: 步骤一:首先在浏览器搜索迅捷CAD编辑器下载安装到电脑端. 步骤二:运行软件,点击界面左上角的"文件"按钮,再点击"批处理"按钮,进入"