今回作成するアプリ

Tabbarの背景色や区切り線を消すにはどうすればいいでしょうか?

左図はデフォルトの状態で、少しだけグレー寄りの白の背景色と1pxの黒線が見えると思います。

これを右図のように背景色を自由に変更し(Tabbarの背景色をアプリの背景と同色にすることで背景を消すことができます)、さらに区切り線を消去する方法をご紹介します。

実装

コード

import SwiftUI

struct ContentView: View {
    init() {
        let appearance = UITabBarAppearance()
        appearance.shadowColor = .clear
        appearance.backgroundColor = UIColor.cyan
        UITabBar.appearance().standardAppearance = appearance
    }

    var body: some View {
        TabView {
            // タブのコンテンツをここに記述する
        }
    }
}

解説

UITabBarAppearance を使用して、タブバーから線を削除します。

init() メソッド内で、 UITabBarAppearance オブジェクトを作成し、線の色を .clear に設定します。そして、UITabBar の標準外観を作成した UITabBarAppearance に設定しています。

また、もちろんですが線の色を.clearでなく.redなど具体的な色を設定することで、線の色を自由に変更することも可能です。

同様な方法で背景色も変更することができます。

Tabbarの背景色に関しても.clearを指定することは可能ですが、前章の左図のように少しグレーがかった白色になるので、アプリの背景と同じ色を指定することをおすすめします。

このように、 UITabBarAppearance を使用することで、 TabView のタブバーの外観をカスタマイズすることができます。ただし、注意点としてこの方法は、iOS 13以降のみで使用可能です。それ以前のバージョンでは、 UITabBarItemimageInsets を使用して、線を削除する必要があります。

参考文献

環境

macOS Ventura 13.0.1

Xcode 14.2

iOS 16.2

Simulater iPhone 14 Pro Max

アイキャッチ画像 出典: App.com