2017-06-09 17 views
0

TabBarControllerからタブバーを継承するUIViewControllerを使用しています。その下のスペースが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

それはまだ同じレイアウトを次のように動的にサブビューのサイズを変更する方法はありますか?

+0

1.あなたの 'TabBar'や 2.変更' TabBar' viewDidLayoutSubviews' '内の高さに高さ制約を追加します。私のために働きました。 なぜ、 'TabBar'高さを最初に変更したいのですか? – Pancho

+0

このようなあなたの出力はどうでしたか?私にフルコードを教えてください。私は試してみました。あなたのコードだけはうまく動いています。 –

答えて

0

これは

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

     return sizeThatFits 
    } 
} 
関連する問題