アプリ開発の逆引き辞典

アプリ開発のTipsをまとめました

SwiftUIで画像のみのタブバーアイテムを表示する

SwiftUIではTabViewを使ってタブバーを実装します。画像とラベルがセットになっているのか、画像のみのタブバーアイテムにした場合、ラベル分が空白になってしまいます。そのため、タブバーアイテムのアイコンを下方向にずらします。

extension UITabBarController {

    //NOTE: TabBarItemに文字を使わないので下方向にずらす
    open override func viewWillLayoutSubviews() {
        guard let items = self.viewControllers else {
            return
        }
        items.forEach { (vc) in
            vc.tabBarItem.imageInsets = UIEdgeInsets(top: 5, left: 0, bottom: -5, right: 0)
        }
    }
}