2012-11-11 33 views
2

我有一個UINavigationController,在屏幕的頂部有一個UINavigationBar,底部有一個UIToolbar。我想讓工具欄更高一些。這裏是我的代碼:如何從UINavigationController中創建UIToolbar?

CGRect toolbarFrame = self.navigationController.toolbar.frame; 
toolbarFrame.size.height += 20; 
toolbarFrame.origin.y -= 20; 
self.navigationController.toolbar.frame = toolbarFrame; 

[self setToolbarItems:@[myButton]]; 
self.navigationController.toolbarHidden = NO; 

這看起來像它應該工作,並不會產生任何錯誤/警告,但工具欄的大小保持在默認值。

有沒有辦法改變一個UINavigationController的UIToolbar的大小,或者我應該爲此做一個自定義的UIToolbar?

+0

從[UINavigationController]的文檔(http://developer.apple.com/library/ios/documentation/uikit/reference/UINavigationController_Class/Reference/Reference.html# // apple_ref/doc/uid/TP40006934-CH3-SW24)'訪問此工具欄僅供希望從工具欄中顯示操作表的客戶端訪問。你不應該直接修改UIToolbar對象。' –

+0

@ Paul.s我認爲他們指的是更深層/更多功能的變化,而不是簡單地弄亂外觀。再讀一遍,雖然,你可能是對的;他們沒有指定。謝謝:) – Nathan

回答

2

我試過你的代碼,只是調整你的代碼的順序。它將工作:

[self setToolbarItems:@[myButton]]; 
self.navigationController.toolbarHidden = NO; 

CGRect toolbarFrame = self.navigationController.toolbar.frame; 
toolbarFrame.size.height += 20; 
toolbarFrame.origin.y -= 20; 
self.navigationController.toolbar.frame = toolbarFrame; 

我想這是因爲setToolbarItems將調整工具欄的外觀。所以你首先需要做其他初始化相關的事情。然後調整其外觀(例如更改其框架)。

+4

不適用於ios8,xcode6.0.1 – Gon

相關問題