在viewDidLoad
我設定的高度不同於標準的44點。例如,我希望它是35分。使用代碼:編輯高度的UIToolbar
CGRect frame = [[UIScreen mainScreen] bounds];
[self.navigationController.toolbar setFrame:CGRectMake(0, frame.size.height-35.f, frame.size.width, 35.f)];
和之前檢查框的尺寸後,我得到的打印輸出:
Before: {{0, 623}, {375, 44}}
After: {{0, 632}, {375, 35}}
但是在模擬器此檢查時,高度不斷44分。當我使用像350,高度大的值也是如此,我得到:
Before: {{0, 623}, {375, 44}}
After: {{0, 317}, {375, 350}}
我還以爲子類UIToolbar
和創造我自己的,但UIToolbar
上UINavigationController
是一個只讀屬性。我還可以嘗試什麼?
你有沒有試過在'viewWillAppear:'中設置它的框架? – n00bProgrammer 2014-11-04 05:47:02
是的。儘管'viewWillAppear:'實際上是在'viewDidLoad'之後調用的,所以即使它允許它工作,我也不認爲這是必要的。 – 2014-11-04 05:51:54
在子類中重寫'layoutSubviews'似乎是我最好的選擇。我嘗試了許多可能的解決方案,但爲'UIToolBar'添加'@ implementation'塊並重寫'layoutSubviews'是我發現的唯一工作解決方案。 – n00bProgrammer 2014-11-04 06:08:37