转自:http://blog.csdn.net/jinglijun/article/details/7259729
//CustomNavigationBar.h
#import <UIKit/UIKit.h>
@interface UINavigationBar (UINavigationBarCategory)
- (void)setBackgroundImage:(UIImage*)image;
- (void)insertSubview:(UIView *)view atIndex:(NSInteger)index;
@end
//CustomNavigationBar.m
#import "CustomNavigationBar.h"
@implementation UINavigationBar (UINavigationBarCategory)
UIImageView *backgroundView;
-(void)setBackgroundImage:(UIImage*)image
{
if(image == nil)
{
[backgroundView removeFromSuperview];
}
else
{
backgroundView = [[UIImageView alloc] initWithImage:image];
backgroundView.tag = 1;
backgroundView.frame = CGRectMake(0.f, 0.f, self.frame.size.width, self.frame.size.height);
backgroundView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[self addSubview:backgroundView];
[self sendSubviewToBack:backgroundView];
[backgroundView release];
}
}
//for other views
- (void)insertSubview:(UIView *)view atIndex:(NSInteger)index
{
[super insertSubview:view atIndex:index];
[self sendSubviewToBack:backgroundView];
}
@end
//YourViewController.m
#import "CustomNavigationBar.h"
//判断设备的版本
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 50000
if ([self.navigationController.navigationBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)]){
//ios5 新特性
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"titleBar.png"] forBarMetrics:UIBarMetricsDefault];
}
#endif
分享到:
相关推荐
本项目“ios-自定义NavigationBar.zip”显然旨在提供一种方法来创建和应用自定义的导航栏。 首先,我们要了解`UINavigationController`的`navigationBar`属性,它是`UINavigationBar`类型的,可以通过这个属性访问...
- **使用Category**:通过给UINavigationBar添加分类,可以扩展其原有功能,如重写`- (void)drawRect:(CGRect)rect`方法来自定义绘制导航栏背景。 - **自定义UIBarButtonItem**:替换默认的返回按钮,或者添加...
例如,可以自定义导航栏的背景色、标题文字样式、左右按钮等。要实现自定义导航栏,你可以: 1. 使用`appearance`代理方法统一设置所有导航栏的样式。 2. 在每个ViewController中重写`navigationBar:didPopItem:`...
开发者可以通过自定义`UINavigationBar`的外观,如背景颜色、标题样式、按钮图标等,来创建独特的界面风格。 - 在iOS 5、iOS 6和iOS 7中,系统默认的`UINavigationBar`样式有所差异,因此自定义代码需要考虑到这些...
2. **自定义导航栏**: 自定义导航栏主要是为了满足应用的个性化需求,可以更改导航栏的背景、标题、按钮等元素。这通常涉及到`UINavigationBar`类的代理方法,以及使用`UIBarButtonItem`来定制导航栏上的按钮。 3. ...
在实际开发中,为了方便复用这些自定义效果,建议将相关的配置封装到一个类别或扩展中,例如创建一个UINavigationBar+Customization.swift文件,将所有的自定义代码集中管理。这样可以提高代码的可维护性和可重用性...
在iOS开发中,`UINavigationBar`是...通过学习和理解`DLNavigationBar`项目,iOS开发者可以了解到如何在自己的应用中实现类似的颜色过渡效果,提升用户体验,同时也能加深对`UINavigationBar`自定义和动画原理的理解。
此压缩包"IOS源码——ios适用于iOS 5、iOS 6和iOS 7的自定义NavigationBar.zip"包含了适用于这三个iOS版本的自定义NavigationBar的源代码。下面将详细探讨iOS中自定义NavigationBar的相关知识点。 1. **iOS版本差异...
代码受https://github.com/ltebean/LTNavigationBar/启发,将其Objective-C的代码更改为swift代码,实现了UINavigationBar的扩展,代码调用非常简单,只需要一句话即可实现导航栏的颜色变更,十分适合需要做个性化...
2. 自定义导航条颜色:通过修改`UINavigationBar`的`barTintColor`属性,可以改变导航条的背景颜色。 3. 更改字体和颜色:使用`navigationBar.titleTextAttributes`可以设置标题的字体和颜色。 4. 添加自定义视图...
2. **自定义导航栏背景**: 通过UIAppearance设置UINavigationBar的barTintColor属性,或者创建一个自定义背景图片。 3. **自定义UIBarButtonItem**: 可以通过设置tintColor改变按钮的颜色,或者创建自定义的按钮图像...
2. **自定义背景图片**:为了实现独特的导航栏外观,开发者可能会用自定义的图片来替换默认的背景,这可能涉及到设置`navigationBar.setBackgroundImage(_:for:)`方法。 3. **自定义标题显示**:除了改变文字颜色和...
3. 用`UIImage`绘制背景:如果需要自定义背景,可以创建一个`UIImage`对象,然后设置`navigationBar.barTintColor`属性。 4. 动画效果:可以通过修改`navigationBar.translucent`属性和`shadowImage`来实现过渡动画...
本文将深入探讨如何在iOS中实现自定义导航栏,包括自定义NavigationBar的外观、行为以及添加自定义功能。 首先,我们来了解自定义导航栏的基本步骤: 1. **创建自定义导航栏类**: 创建一个继承自`...
开发者可能会想要自定义导航条的背景色、标题文字样式、左右按钮等元素。这可以通过修改`UINavigationBar`的属性或者创建自定义的`UIBarButtonItem`来实现。 在“IOS自定义Tabbar和导航条”项目中,已经提供了一个...
1. **设置背景颜色**:你可以通过`UINavigationBar`的`barTintColor`属性来设置导航栏的背景颜色。例如: ```swift self.navigationController?.navigationBar.barTintColor = UIColor.red ``` 2. **定制标题...
本篇文章将深入探讨如何实现iOS导航的各种自定义样式,包括隐藏导航栏以及实现其各种变化效果。 一、自定义导航栏颜色 默认情况下,导航栏背景色为白色,文字颜色为黑色。我们可以通过以下代码来改变这些属性: ``...
总之,这个 "ios-灵活自定义导航栏-多个页面显示在同一个页面里面.zip" 提供了一个实现复杂导航栏布局的实例,对开发者来说,学习并理解这个示例能够提升他们对 iOS 自定义导航栏和页面嵌套的理解,有助于在实际项目...