2010-10-23 152 views
1

如何更改導航欄,選項卡欄的顏色?更改顏色導航欄,選項卡欄

每當我改變它,我沒有得到我想要的顏色,它要麼漸變紅色,要麼漸變白色/銀色。

但無法做到這一點,默認漸變藍色和灰色都看起來不錯,但嘗試改變它任何其他顏色,它看起來很可怕。

任何提示?如何做梯度?

回答

4

對於導航欄,你可以使用:

[navigationController.navigationBar setTintColor:[UIColor redColor]; //Red as an example. 

這將着色導航欄和它所有的按鈕的顏色,以特定的顏色,在這種情況下,紅色。該屬性也可以在Interface Builder中設置。

如果您想進一步定製它,可以通過對它進行子分類將UINavigationBar的背景設置爲圖像。像這樣...

頭文件。

#import <UIKit/UIKit.h> 

@interface UINavigationBar (CustomImage) 

@end 

Implementaion文件。

#import "CustomNavigationBar.h" 

@implementation UINavigationBar (CustomImage) 

- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx 

{ 
    if([self isMemberOfClass: [UINavigationBar class]]){ 
     UIImage *image = [UIImage imageNamed:@"bar.png"]; 
     CGContextClip(ctx); 
     CGContextTranslateCTM(ctx, 0, image.size.height); 
     CGContextScaleCTM(ctx, 1.0, -1.0); 
     CGContextDrawImage(ctx, CGRectMake(0, 0, self.frame.size.width, self.frame.size.height), image.CGImage); 
    }else{ 
     [super drawLayer:layer inContext:ctx]; 
    } 

} 

@end 

然後在界面生成器之類的設置UINavigationBar(在這種情況下)CustomNavigationBar下的身份標籤。

如果您稍微更改了代碼,則代替UITabBar,但它可能與UITabBar一起使用,但我沒有嘗試過。

+0

如此複雜? :( – 001 2010-10-24 04:42:30

+0

好的設置色彩的顏色不是,但是設置一個完全不同的圖像很複雜 – Joshua 2010-10-24 07:28:06

+0

即使SetTintColor代碼也不適用於我,我已經嘗試了很多這類代碼,並且它們都沒有工作。嗯......我想知道是否我錯誤地放錯了位置,但錯誤並不介意我放置它的位置,他們只是建議有一個缺失的標識符? – john 2012-08-31 02:18:18