2011-01-20 43 views
2

我不知道我的客戶如何嘲笑他們的截圖,但他們結束了一個圖像,其中導航欄有一種雙色調的金屬外觀,就像這樣:如何讓iPhone應用上的導航欄看起來像金屬?

Metallic.

但是,當我構建應用程序,它結束了對白色漸漸從我的色彩褪色,就像這樣:真的很喜歡的方式

Not so metallic.

麻煩的是,客戶看起來他們的實物模型。我能做什麼?

回答

5

子類UINavigationBar。在你的子類中,重寫drawRect:來自定義繪製你想要的東西。在UINavigationController的實例中,確保導航欄是您的子類的一個實例。

如果你編程實例化您的導航控制器,你可能無法做到這一點 - 你可能不得不求助於添加類別UINavigationBar重寫所有實例繪製:

@implementation UINavigationBar (CustomDrawing) 
- (void)drawRect: (CGRect)rect { 
    // ... 
} 
@end 

這是也可以使用方法調整來覆蓋UINavigationBar的默認行爲,但解釋方法調整超出了這個問題的範圍。

+0

這就是我們採用了。非常感謝。 – 2011-01-21 17:56:22

1

在@喬納森的回答Ray Wenderlich後面有一個關於創建自己的漸變的偉大教程。

這裏有一個SNIPPIT:

void drawGlossAndGradient(CGContextRef context, CGRect rect, CGColorRef startColor, 
    CGColorRef endColor) { 

    drawLinearGradient(context, rect, startColor, endColor); 

    CGColorRef glossColor1 = [UIColor colorWithRed:1.0 green:1.0 
     blue:1.0 alpha:0.35].CGColor; 
    CGColorRef glossColor2 = [UIColor colorWithRed:1.0 green:1.0 
     blue:1.0 alpha:0.1].CGColor; 

    CGRect topHalf = CGRectMake(rect.origin.x, rect.origin.y, 
     rect.size.width, rect.size.height/2); 

    drawLinearGradient(context, topHalf, glossColor1, glossColor2); 

} 
+0

雷文德利希是王牌。 – 2011-01-21 17:56:41

相關問題