我不知道我的客戶如何嘲笑他們的截圖,但他們結束了一個圖像,其中導航欄有一種雙色調的金屬外觀,就像這樣:如何讓iPhone應用上的導航欄看起來像金屬?
但是,當我構建應用程序,它結束了對白色漸漸從我的色彩褪色,就像這樣:真的很喜歡的方式
麻煩的是,客戶看起來他們的實物模型。我能做什麼?
我不知道我的客戶如何嘲笑他們的截圖,但他們結束了一個圖像,其中導航欄有一種雙色調的金屬外觀,就像這樣:如何讓iPhone應用上的導航欄看起來像金屬?
但是,當我構建應用程序,它結束了對白色漸漸從我的色彩褪色,就像這樣:真的很喜歡的方式
麻煩的是,客戶看起來他們的實物模型。我能做什麼?
子類UINavigationBar
。在你的子類中,重寫drawRect:
來自定義繪製你想要的東西。在UINavigationController
的實例中,確保導航欄是您的子類的一個實例。
如果你編程實例化您的導航控制器,你可能無法做到這一點 - 你可能不得不求助於添加類別UINavigationBar
重寫所有實例繪製:
@implementation UINavigationBar (CustomDrawing)
- (void)drawRect: (CGRect)rect {
// ...
}
@end
這是也可以使用方法調整來覆蓋UINavigationBar
的默認行爲,但解釋方法調整超出了這個問題的範圍。
在@喬納森的回答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);
}
雷文德利希是王牌。 – 2011-01-21 17:56:41
這就是我們採用了。非常感謝。 – 2011-01-21 17:56:22