from:http://cocoa.venj.me/blog/custom-navbar-background/

为了让我们的应用程序更加美观,我们往往希望对iPhone自带的控件进行一点自定义。比如,本文即将要讲述的,给UINavigationBar加一个背景。

最简单的一个自定义方法就是修改一下背景色。方法非常简单,那就是使用它的tintColor属性:

1
self.navigationController.navigationBar.tintColor = [UIColor redColor];

这样就轻松地为UINavigationBar加上了红色的背景色–当然你可以使用任何颜色。下面是模拟器中的测试效果:

另外,就是为UINavigationBar加背景图片。这个稍稍复杂一些–特别是对于iOS 5之前的iOS来说。先说说简单的,iOS 5已经为UINavigationBar增加了一个新的方法-setBackgroundImage:forBarMetrics:,专门用于设置UINavigationBar的背景图片。

Updated

删除了在iOS4下有问题的方法。

Update

适用于iOS 4的方法是在AppDelegate.m中创建一个UINavigationBar的Catagory,覆盖-drawRect:方法,如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
@implementation UINavigationBar (CustomImage)
- (void)drawRect:(CGRect)rect {
UIImage *img = [UIImage imageNamed:@"navbar"];
[img drawInRect:rect];
}
@end
...
//在后面加入判断是否支持iOS 5的代码,来提供对iOS 5的支持:
if ([bar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)]) {
[bar setBackgroundImage:bg forBarMetrics:UIBarMetricsDefault];
}

这种方法将应用到程序中所有的UINavigationBar实例。但是通常来说,是不推荐覆盖系统自带的类中的方法的,所以我并不推荐使用这种方法。

这里介绍了更好的方法。

(全文完)

自定义UINavigationBar的背景【转】的更多相关文章

  1. iOS开发备忘录:自定义UINavigationBar背景图片和Back按钮

    iOS项目,根据设计图,有时需要自定义UIView的UINavigationBar的背景.可以切出来一张1像素左右的背景图片,来充当UINavigationBar的背景. 可以利用Navigation ...

  2. ios 更改全局UINavigationBar的背景图片以及通知栏颜色

    1.更改UINavigationController push 到另一个界面返回按钮的title self.navigationController.navigationBar.topItem.bac ...

  3. ios - UINavigationBar添加背景图片的几种简单思路

    UITabBarController下面常常需要为多个ViewController设置导航栏样式,总结了一下遇到过的为UINavigationBar添加背景图片的几种简单思路 以设置背景图片为例: 第 ...

  4. Swift自定义UINavigationController(背景颜色、背景图片、返回按钮设置、字体大小等)

    1.0  自定义UINavigationController时,背景图片.颜色等只需要设置一次,所以我们可以重写  initializa  这个方法来实现我们想要的效果 override  class ...

  5. ios之自定义UINavigationBar

    ios5 自定义导航条问题 在ios5之前的系统中,可以通过定义导航条类别的方式自定义导航条: @implementation UINavigationBar (CustomImage)- (void ...

  6. ios7 自定义UINavigationBar UIBarButtonItem 10px的偏移纠正

    为UINavigationBar 写一个分类.UINavigationItem+correct_offset.h  转载 http://www.colabug.com/thread-1112420-1 ...

  7. android 自定义ScrollView实现背景图片伸缩(阻尼效果)

    android 自定义ScrollView实现强调内容背景图片伸缩(仿多米,qq空间背景的刷新) 看到一篇文章,自己更改了一下bug: 原文地址:http://www.aiuxian.com/arti ...

  8. UniGUI的TUniLoginForm窗口自定义背景色和背景图片

    雨田家园 UniGUI的TUniLoginForm窗口自定义背景色 uniGUI的TUniLoginForm类创建的登录窗口默认是不带颜色,可以自定义css风格来改变背景颜色. 一般是通过在UniSe ...

  9. Android自定义布局的背景在多分辨率的情况下设置fill_parent时背景不能够横向全屏的问题解决

    问题描述:最近做了一个自定义的控件LinearLayout就是公用的底部菜单条,在指定分辨率下(例如:480x800,480x854)下背景是正常的,但是当程序运行到非指定(默认)的分辨率下就不正常了 ...

随机推荐

  1. datasnap的初步

    datasnap的初步-回调函数 服务器端 TServerMethods1 =class(TComponent) private { Private declarations } public { P ...

  2. java练习篇 求输出最大值

    总结:没有把数据输入.是数组-----把要输入的数据放在数组里.错在这里 import java.util.Scanner; public class shibai { public static v ...

  3. AngularJS:表达式

    ylbtech-AngularJS:表达式 1.返回顶部 1. AngularJS 表达式 AngularJS 使用 表达式 把数据绑定到 HTML. AngularJS 表达式 AngularJS ...

  4. PHP函数htmlspecialchars_decode

    htmlspecialchars_decode() 函数把一些预定义的 HTML 实体转换为字符. <?php $str = "This is some <b>bold&l ...

  5. js是这样判断值的数据类型的

    js如何判定给定值的数据类型? typeof typeof "a" // "string" typeof 1 // "number" typ ...

  6. VS2017自动添加头部注释

    让VS自动生成类的头部注释,只需修改两个文集即可,一下两个路径下个有一个 Class.cs文件 D:\Program Files (x86)\Microsoft Visual Studio\2017\ ...

  7. mysql之约束以及修改数据表

    数据约束的分类: ———————————————————————————————————————————————————— 外键约束的要求解析: //在my文件中的这句话代表着搜索引擎,如果不是的就需 ...

  8. Windows下Git中正确显示中文的设置方法

    Windows下Git中正确显示中文的设置方法 具体设置方法如下: 进入目录etc:$ cd /etc 1. 编辑 gitconfig 文件:$ vi gitconfig.在其中增加如下内容: [gu ...

  9. laravel框架容器管理的一些要点(转)

    本文面向php语言的laravel框架的用户,介绍一些laravel框架里面容器管理方面的使用要点.文章很长,但是内容应该很有用,希望有需要的朋友能看到.php经验有限,不到位的地方,欢迎帮忙指正. ...

  10. 分布式全文检索系统SolrCloud简介

    前言 本文简单描述SolrCloud的特性,基本结构和入门,基于Solr4.5版本. Lucene是一个Java语言编写的利用倒排原理实现的文本检索类库.Solr是以Lucene为基础实现的文本检索应 ...