2010-07-22 136 views

回答

0

只需將您的背景添加爲子視圖,如jrtc27所示,並根據您的需要更改色調顏色。

0

您也可以重寫drawRect函數。

@implementation UINavigationBar (UINavigationBarCustom) 

- (void)drawRect:(CGRect)rect { 

    UIImage *image = [UIImage imageNamed:@"nav_bar_logo.png"]; 
    [image drawInRect:rect]; 
} 

@end 
0

您也可以覆蓋drawLayer:inContext的:在UINavigationBar的類別類方法。在drawLayer:inContext:方法中,您可以繪製想要使用的背景圖像。如果您願意,還可以使用不同大小的圖像進行縱向和橫向取向。

- (void) drawLayer:(CALayer *)layer inContext:(CGContextRef)context 
{ 
    if ([self isMemberOfClass:[UINavigationBar class]] == NO) { 
     return; 
    } 

    UIImage *image = (self.frame.size.width > 320) ? 
         [UINavigationBar bgImageLandscape] : [UINavigationBar bgImagePortrait]; 
    CGContextClip(context); 
    CGContextTranslateCTM(context, 0, image.size.height); 
    CGContextScaleCTM(context, 1.0, -1.0); 
    CGContextDrawImage(context, CGRectMake(0, 0, self.frame.size.width, self.frame.size.height), image.CGImage); 
} 

,並作爲定製UINavigationBar的thisthis的外觀可能會有所幫助一個完整的演示Xcode項目。

2

使用此代碼

 UIImage *backgroundImage = [UIImage imageNamed:@"strip.png"]; 
     [upnavbar setBackgroundImage:backgroundImage forBarMetrics:UIBarMetricsDefault]; 

這個WIL工作 - 您可以通過以下鏈接找到您的應用中這個功能無縫集成,代碼示例和類別。