2010-10-28 104 views
4

基本上我想要一個自定義UINavigationBar。我不希望它是「半透明」或任何東西,如圖片應用程序。自定義UINavigationController UINavigationBar

我基本上想完全刪除它,但我仍然希望能夠添加後退按鈕等,當導航控制器被按下時,我希望視圖(EG:UITableViewController)被推下。

像這樣:

alt text

任何想法如何,在所有實現這一目標?

感謝

回答

6
@implementation UINavigationBar (background) 

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

@end 

基本上,它沒有完全看透 - 它的視覺謊言。要真正做到這一點,唯一的方法就是覆蓋UINavigationBardrawRect:方法,如上所示。

+0

[從類別中覆蓋方法]被認爲是不好的做法(http://thaesofereode.info/ clocFAQ /#類別-倍數)。 – Justin 2011-05-10 21:43:57

+0

err ...有沒有另一種方法來做到賈斯汀先生? – 2011-05-11 09:22:07

+0

對不起,我應該提供這種替代方法,而不是批評舊文章:您可以在'UINavigationBar'的適當子類中覆蓋'drawRect:',然後將其設置爲您的'UINavigationController'的導航欄的類。然而,設置這個課程的唯一「官方」方式是通過XIB。 – Justin 2011-05-11 15:48:14

0

很難說,可能是UINavigationBar是存在的,顏色UIView背景相匹配,或者沒有UINavigationBar,只是一個自定義按鈕和UILabel的俯視圖。選擇一種方法並對其進行編碼,或者再次以更具體的方式提出問題。

+0

我不知道如何指定更多。我想要一個透明的導航欄。我只需要創建自己的導航欄樣式元素?在這種情況下 - 我怎麼知道我是否在根視圖控制器上?如果我不在根視圖控制器上,我可以添加一個「後退」按鈕到視圖不能嗎? – 2010-10-28 12:50:04

4

要通過UINavigationBar看,如果你選擇有一個,只是:

self.navigationController.navigationBar.translucent=YES; 

你必須改變色調/顏色相匹配的背景,如果你希望它看起來像是像你發佈。

+0

這只是使其半透明...它的好,我發現了另一種方式...看到我的回答 – 2010-10-28 13:39:38

1

在下面的AppDelegateUINavigationBar的開頭:

@interface CustomNavBar : UINavigationBar 

@end 

@implementation CustomNavBar 

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

然後在AppDelegate做到這一點魔法:

//Set custom NavigationBar 
[self.navController setValue:[[CustomNavBar alloc]init] forKeyPath:@"navigationBar"]; 
//Set tint to match bar.png 
self.navController.navigationBar.tintColor = [UIColor colorWithRed:0.93 green:0.43 blue:0 alpha:1]; 
//Set font for NavigationBar 
[self.navController.navigationBar setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIFont fontWithName:@"Comfortaa-Bold" size:20], UITextAttributeFont, nil]]; 

這應該給你更多的控制權UINavigationController看&感覺。

相關問題