2009-09-06 118 views
0

我使用UINavigationController的id來使用導航欄的一個典型情況。設置其界限和框架似乎不會有所作爲,即時通訊使用此代碼我如何設置UINavigationBar在iphone應用程序中的高度

//set up the navigation 
UINavigationController *navigationController = [UINavigationController new]; 

[navigationController.navigationBar setBarStyle:UIBarStyleBlack]; 
[navigationController.navigationBar setTintColor:[UIColor purpleColor]]; 
[navigationController.navigationBar setBounds:CGRectMake(0.0, 0.0, 480.0, 100.0)]; 
[navigationController.navigationBar setFrame:CGRectMake(0.0, 0.0, 480.0, 100.0)]; 

但無濟於事。有任何想法嗎?

回答

2

我不認爲你可以改變導航欄的高度。除了添加提示信息...但這不是你想要的。

框架是視圖的可見區域。邊界是內部區域。通常這具有(0,0)的來源,並且與框架一樣寬和高。但是,當內容超出可見區域時(如使用UIScrollView),邊界可能會更大(並且原點不同)。你很少看到小於各自幀的邊界。

編輯:看看你的代碼,什麼是[UINavigationController new]呢?你應該[[UINavigationController alloc] init],不是嗎?

而且,你在做什麼是不是真的繼承...

+0

你說得對,它不是繼承,想着其他的事情而寫的問題。至於'new',必須從某處複製代碼 – 2009-09-07 01:16:36

+0

新方法只是alloc/init的快捷方法。以完全相同的方式工作。 – horseshoe7 2011-08-01 10:11:19

1

截至2009年的時候,有可能是沒有辦法改變的UINavigationController的高度。但是,在iOS SDK 4.3中,有一種方法(破解)。

要更改UINavigationController的高度,請在viewWillAppear:animated:函數中更改其框架大小。然後,高度將保持整個應用程序的定製。

0

據我所知,標準的導航欄高度不應該改變。

「具體地,它是好的到 修改barStyle,tintColor,和半透明屬性,但 決不直接改變的UIView級屬性,如幀, 界限,α或直接隱藏屬性。 「

如果你喜歡自定義導航欄的外觀,您可以使用外觀代理[UINavigationBar的外觀在iOS 5中

相關問題