在iOS 7中更改UIToolbar的高度

我试图在新的iOS 7项目中更改我的UIToolbar的高度,但我无法做到。

我正在使用UINavigationController来管理几个UIViewController。 我尝试通过导航控制器设置工具栏的框架,但唉,工具栏属性是只读的。

我看着“有没有办法改变UIToolbar的高度?” 但那不起作用。

我尝试了UIToolbar的子类化,强制自定义高度并在Storyboard中设置正确的类,但那也没有奏效,高度始终保持为44px。

我认为自动布局不能对工具栏的大小设置任何限制,每个字段都是禁用的。

我可以在比工具栏更高的UIBarButtonItem中设置自定义视图。 大项目将被正确渲染,但会从工具栏溢出。

这是我能做的最好的:截图

实际上是否可以在iOS 7中更改UIToolbar的高度? 或者我应该创建一堆自定义项目来模仿它?


在使用sizeThatFits的@Antoine建议之后,下面是我的Toolbar子类,其高度为64:

import UIKit

class Toolbar: UIToolbar {
    override func layoutSubviews() {
        super.layoutSubviews()
        frame.size.height = 64
    }

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

然后,当初始化导航控制器时,我说它应该使用该类:

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

我发现设置工具栏高度的最简单方法是使用高度约束,如下所示:

let toolbarCustomHeight: CGFloat = 64

toolbar.heightAnchor.constraintEqualToConstant(toolbarCustomHeight).active = true

我通过UIToolbar并粘贴以下代码解决了这个问题:

override func layoutSubviews() {
    super.layoutSubviews()

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

override func sizeThatFits(size: CGSize) -> CGSize {
    var size = super.sizeThatFits(size)
    size.height = 52
    return size
}
链接地址: http://www.djcxy.com/p/90317.html

上一篇: Changing the height of UIToolbar in iOS 7

下一篇: IOS7 : UIScrollView offset in UINavigationController