调整标签栏swift后调整子视图大小

时间:2017-06-09 08:34:30

标签: ios swift uitabbarcontroller uitabbar

我正在使用UIViewController继承TabBarController中的标签栏,在其中,我有一个UITableView,其底部空间设置为等于底部布局指南顶部,如下所示:

enter image description here

然后我用这段代码来调整标签栏的大小

let barHeight: CGFloat = 40.0

override func viewWillLayoutSubviews() {
    super.viewWillLayoutSubviews()

    var tabFrame = tabBar.frame
    tabFrame.size.height = barHeight
    tabFrame.origin.y = view.frame.size.height - barHeight - 1
    tabBar.frame = tabFrame
}

但似乎表格视图已经在标签栏调整大小之前已经布局了,它会产生类似这样的结果

enter image description here

有没有办法动态调整子视图的大小,使其仍然遵循相同的布局?

1 个答案:

答案 0 :(得分:0)

这对我有用

extension UITabBar {
    override open func sizeThatFits(_ size: CGSize) -> CGSize {
        var sizeThatFits = super.sizeThatFits(size)
        sizeThatFits.height = 40

        return sizeThatFits
    }
}