2016-08-22 98 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