2012-09-07 60 views
0

我有一個包含很多視圖的應用程序。每個視圖都由故事板中的導航控制器控制。我想使用自定義圖像作爲導航欄。我已經創建了這個圖像,但是對於實現這個過程的程序還不確定。代碼:使用圖像作爲導航欄iOS 5

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

似乎並不奏效。我將這段代碼放在視圖控制器中。我應該使用不同的方法來設置視圖控制器或爲導航控制器分配控制器嗎?如果是這樣,我將如何做到這一點?

這裏的佈局,故事板:

enter image description here

謝謝。

+0

這甚至被稱爲?在視圖本身中是不是drawRect,而不是在ViewController中? – Thilo

回答

3

由於您使用的是iOS 5,你可以這樣做:

UIImage *image = [UIImage imageNamed:@"topbar"]; 
[self.navigationBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault]; 

你並不需要一個子類,你可以使用常規UINavigationBar的。

3

不知道這是否符合你的情況下,100%,但至少可以覆蓋一個這樣的圖像導航欄...

self.navigationItem.titleView = [[UIImageView alloc] initWithImage: navBarImage]; 

的圖像將被集中在標題通常會顯示,但如果它足夠大,它將覆蓋整個導航欄。

+0

在viewDidLoad中? – jsttn

+0

是或viewWillAppear:方法。 –