2012-02-28 41 views
-1

我用下面的代碼來改變UINavigationBar的背景:改變UINavigationBar的多重背景的iOS 4.3

代碼:

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

所以現在我需要一個以上的背景NavBar2.png ...

如何實現這個?

感謝

+0

您是否爲每個導航欄設置了標籤並試過? – 2012-02-28 13:44:14

+0

@ R.A不,我怎麼能拿到上述方法? – 2012-02-28 13:45:16

+0

爲XIB中的每個導航欄設置標籤,並放置一個if條件來檢查navigationBar.tag並在每個條件中設置不同的圖像 – 2012-02-28 13:48:48

回答

0

我解決它用我的原代碼,圖像背景,然後把titleView導航欄

UIView *aView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 165, 44)]; 
    UIImageView *imgv = [[UIImageView alloc] initWithFrame:aView.frame]; 
    imgv.image = [UIImage imageNamed:@"NavBar01.png"]; 
    [aView addSubview:imgv]; 
    self.navigationController.navigationBar.topItem.titleView = aView; 
    [aView release]; 
    [imgv release]; 
0

試試這個代碼。

- (void) drawRect:(CGRect)rect 
{ 
if(navigationBar.tag == 0){ 
    UIImage *image = [UIImage imageNamed:@"NavBar.png"]; 
    [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)]; 
} 
else if(navigationBar.tag == 1) 
    UIImage *image = [UIImage imageNamed:@"NavBar1.png"]; 
    [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)]; 
} 
} 
0

R.A.提到的標記邏輯。肯定會幫助你。

如果您正在開發在iOS5的應用程序,那麼你也可以看看:

- (void)setBackgroundImage:(UIImage *)backgroundImage forBarMetrics:(UIBarMetrics)barMetrics