2

UINavigationBarオーバーロードされたメソッドで背景画像を変更します

@implementation UINavigationBar (Background)
-(void) drawRect:(CGRect)rect
{
    UIImage *image = [UIImage imageNamed:@"Header.png"];
    [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}

@end

ただし、一部のUIViewControllerでは、この背景画像を削除する必要があります。どうすればいいですか?

4

2 に答える 2

2

SebastianCelisのこのブログ投稿をご覧ください。それはあなたが直面している問題を正確に解決します。

そして多分これもチェックしてください。

于 2012-04-15T15:30:52.337 に答える
0

この方法でテストします

+ (void)setNavigationbarBackground:(UINavigationBar *)nBar imageName:(NSString *)imgName {
    if([nBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)]) {
        [nBar setBackgroundImage:[UIImage imageNamed:imgName] forBarMetrics:UIBarMetricsDefault];
    } else {
        [nBar setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:imgName]]];
    }
}
于 2012-04-15T14:59:53.890 に答える