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

resize subview after resizing tab bar swift

我正在使用从 TabBarController 继承标签栏的 UIViewController,在其中,我有一个 UITableView,其底部 space 设置为等于底部布局指南顶部,看起来像这样:

然后我使用这段代码调整了我的标签栏

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
}

但似乎 table 视图在调整选项卡栏大小时已经布置好,结果是这样的

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

这对我有用

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

        return sizeThatFits
    }
}