2016-08-22 94 views
1

我想在導航控制器中更改UIToolbar的高度,但我無法在Xcode 7.3和iOS 9中使用swift。我試圖在viewDidLoad中使用CGRectMake設置框架,但它沒有工作。還嘗試初始化一個自定義UIToolbar(),但高度保持不變。如何更改UIToolbar高度?

編輯:

Screenshot

按其中一個答案,我曾嘗試選擇工具欄,請控制,再次選擇工具欄上,但在下面的截圖,而不是表示我得到了什麼

回答

1

你可以使用它; 更改45最小或最大高度。

override func layoutSubviews() { 
    super.layoutSubviews() 

    var frame = self.bounds 
    frame.size.height = 45 
    self.frame = frame 
} 

override func sizeThatFits(size: CGSize) -> CGSize { 
    var size = super.sizeThatFits(size) 
    size.height = 45 
    return size 
} 

與like一起使用它;

let navigationController = UINavigationController(navigationBarClass: nil, toolbarClass: Toolbar.self) 

感謝

+0

請問哪裏可以放?在UINavigationController?該方法似乎沒有從它的超類中重寫任何方法。 – victorleungtw

+0

@victorleungtw補充說。 – SwiftDeveloper

+1

它的工作完美 –

0

如果您使用自動佈局,您可以在Storyboard中設置高度約束。

或者你也可以做到這一點編程方式是這樣的:

myToolbar.frame = CGRectMake(0, 50, 320, 35) 
+0

謝謝,但我忘了提及自動佈局被禁用。 – victorleungtw

2

有具體取決於您使用的故事板或不2點的選擇。

選項1:使用故事板

1)轉到您的故事板,並從您選擇的工具欄,按住Ctrl鍵,然後再次單擊工具欄上,如果你是分配一個IBAction爲。然後你會得到如下結果:

(對不起,我第一個圖像的質量,不得不採取扣我的電話,因爲我不能讓一個屏幕截圖,同時按住Ctrl)

enter image description here enter image description here

2)然後按身高來獲取約束,改變值:

enter image description here

Ø第2部分:使用Swift處理例如55像素高度

yourToolBar.frame = CGRect(x: 0, y: view.frame.size.height - 55, width: view.frame.size.width, height: 55) 
+0

嘗試過選項1,但無法打開與您的屏幕截圖相同的窗口。我的選擇只有「Outlets」,「Outlet Collection」,「Reference Outlets」和「Reference Outlets Collections」。順便說一句,故事板中禁用了自動佈局。 – victorleungtw

+0

還嘗試了選項2,並使用強引用@IBOutlet在UINavigationController中設置框架。它也不會改變。 – victorleungtw

+0

是的,如果你正在使用故事板,你必須使用選項1.你確定你已經選擇了你的工具欄,然後按住Ctrl再次單擊工具欄上的按鈕?它應該在每一端顯示帶藍點的藍線。我在1分鐘前嘗試過,如果做得對,它絕對有效 - 我也在 – tech4242