2012-01-17 19 views
0

にナビゲーションバーの画像を設定できませんでしたは、唯一の "IOS 5.0" 私のユニバーサルアプリで

私が使用して...ナビゲーションバー上の画像を設定しています**

objective c category...on UINavigationBar

**

コードがiphoneで、IOS 5.0では正常に動作 * コードは、iPhone/iPadの中にIOS 4.3では正常に動作 *

*But not working in **ios 5.0 iPad*** 





- (void) drawRect:(CGRect)rect 
    { 
    UIImage *image; 

    image = [UIImage imageNamed: @"Navigation.png"]; 

    [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)]; 

     [self setTintColor:[UIColor clearColor]]; 

     NSLog(@"Draw Rect"); 

    } 

答えて

6

あなたは以下のコード

if ([self.navigationController.navigationBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)]){ 
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"Navigation.png"] forBarMetrics:UIBarMetricsDefault]; 
} 
を使用しますが、覚えておいてくださいすることができiOSの5で、ナビゲーションバーのためのBGの画像を設定するにはiOSの4のこの文句を言わない仕事はあなたがアプリケーション全体の背景をあなたがCAを設定する場合は、またUINavigationBar

@implementation UINavigationBar (UINavigationBarCategory) 
- (void)drawRect:(CGRect)rect { 
UIImage *img = [UIImage imageNamed:@"Navigation.png"]; 
[img drawInRect:rect]; 
} 
+0

OKしかし、どのアプリがIOS 4.0または5.Oに実行されているかどうかという区別するために... –

+0

。もしあなたがまだhttp://stackoverflow.com/questions/820142/how-to-target-a-specific-iphone-versionを見つけたいのであれば – sElanthiraiyan

2

にカテゴリを追加する必要があり、それは両方で動作するようにすることをn iOS5のUIAppearanceを使用します。あなたは、両方のコードスニペットを使用している場合、IOSバージョンを見つけるために持っていけない

[[UINavigationBar appearance] setBackgroundImage:X forBarMetrics:UIBarMetricsDefault]; 
[[UINavigationBar appearance] setBackgroundImage:X forBarMetrics:UIBarMetricsLandscape]; 
関連する問題