天天看點

IOS5修改UIToolBar 和UINavigationBar 的背景顔色

UIToolBar 三種辦法

方法一

/toolBar background image  set based on iOS version

    [[UIDevice currentDevice] systemVersion];

     if ([[[UIDevice currentDevice] systemVersion] floatValue] >  4.9) {

         // iOS 5

        UIImage *toolBarIMG = [UIImage imageNamed:  @" toolBar_brown.png "];  

         if ([toolBar respondsToSelector:@selector(setBackgroundImage:forToolbarPosition:barMetrics:)]) { 

            [toolBar setBackgroundImage:toolBarIMG forToolbarPosition: 0 barMetrics: 0]; 

        }

    }  else {

         // iOS 4

        [toolBar insertSubview:[[[UIImageView alloc] initWithImage:[UIImage imageNamed: @" toolBar_brown.png "]] autorelease] atIndex: 0]; 

    } 

 方法二

 // MyToolBar.h

#import <UIKit/UIKit.h>

@interface MyToolBar : UIToolbar {

}

@end

//  MyToolBar.m

#import  " MyToolBar.h "

@implementation MyToolBar

- ( void)drawRect:(CGRect)rect {

 CGContextRef c = UIGraphicsGetCurrentContext();

 UIImage *image = [UIImage imageNamed: @" fish.png "];

 CGContextDrawImage(c, rect, image.CGImage);

}

@end

方法三

-( void)drawRect:(CGRect)rect

{

    UIImage *img  = [[[UIImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource: @" ToolbarBk " ofType: @" png "]] autorelease];

    [img drawInRect:CGRectMake( 0,  0, self.frame.size.width, self.frame.size.height)];

UINavigationBar  

在APPDelegate添加

@implementation UINavigationBar (UINavigationBarCategory)

- ( void)drawRect:(CGRect)rect {

UIImage *img = [UIImage imageNamed: @" navbar.png "];

[img drawInRect:rect];

}

@end 

 if ([self.navigationController.navigationBar respondsToSelector:@selector( setBackgroundImage:forBarMetrics:)]){

[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed: @" navbar.png "] forBarMetrics:UIBarMetricsDefault];

}