如何更改 UIToolbar 的高度? [复制]

Posted

技术标签:

【中文标题】如何更改 UIToolbar 的高度? [复制]【英文标题】:How to change UIToolbar height? [duplicate] 【发布时间】:2016-08-22 08:20:37 【问题描述】:

我想更改导航控制器中 UIToolbar 的高度,但我无法在 Xcode 7.3 和 ios 9 中快速执行此操作。我尝试在 viewDidLoad 处使用 CGRectMake 设置框架,但它没有用.还尝试初始化自定义 UIToolbar(),但高度保持不变。

编辑:

根据其中一个答案,我尝试了选择工具栏,按下控制并再次选择工具栏,但我得到的却显示在下面的屏幕截图中:

【问题讨论】:

【参考方案1】:

根据您是否使用情节提要,有 2 个选项。

选项 1:使用情节提要

1) 转到您的故事板并从您选择的工具栏中按住 Ctrl 并再次单击您的工具栏,就像您正在分配 IBAction 一样。然后你会得到以下信息:

(对不起第一张图片的质量;我不得不用我的手机拍照,因为我按住 ctrl 时无法截屏)

2) 然后按高度获取约束并更改值:

选项 2:例如使用 Swift 55 像素高度

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

【讨论】:

尝试了选项 1,但无法打开与屏幕截图相同的窗口。我的只有“奥特莱斯”、“奥特莱斯收藏”、“参考奥特莱斯”和“参考奥特莱斯收藏”选项。顺便说一句,故事板中禁用了自动布局。 还尝试了选项 2,并在 UINavigationController 中使用强引用 @IBOutlet 设置框架。它也不会改变。 是的,如果您使用情节提要,则必须使用选项 1。您确定您已选择工具栏,然后在按住 ctrl 的同时再次单击工具栏吗?它应该显示蓝线,两端都有蓝点。我在 1 分钟前尝试过,如果操作正确,它肯定可以工作 - 我之前也在应用程序中使用过它 感谢您的回复。但是我仍然无法使用 xcode 7.3.1 版获得与您相同的屏幕。我编辑了我的问题并附上了屏幕截图。 我看到了您的屏幕截图.. 当您右键单击工具栏等时会发生这种情况。只需按住 Ctrl 将鼠标悬停在工具栏上方,然后再次按下/单击工具栏。请参阅我的新附加图片。只要你没有看到两个连接的蓝点,它就不起作用【参考方案2】:

您可以将它与 ; 一起使用 将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)

谢谢

【讨论】:

请问放在哪里?在 UINavigationController 中?该方法似乎没有覆盖其超类中的任何方法。 @victorleungtw 添加了。 完美运行 @victorleungtw 配合我的代码完美运行请批准我的回答,谢谢;)【参考方案3】:

如果您使用自动布局,您可以在Storyboard 中设置高度约束。

或者您可以像这样以编程方式进行:

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

【讨论】:

谢谢,但我忘了提到自动布局已禁用。

以上是关于如何更改 UIToolbar 的高度? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

更改 UIToolbar UIBarMetrics

更改工具栏高度时如何防止按钮向右移动?

如何让 UIToolbar 的背景透明? [复制]

如何在表格视图中更改一个单元格的高度? [复制]

更改 UIBarButtonItem 的 UIToolbar 阴影颜色

更改 UIToolbar 的背景图片