注意
執筆時点でベータ版を扱っているため、正式版と挙動が異なる可能性があります。
UITabBarAppearanceを使う
...
let appearance = UITabBarAppearance()
appearance.backgroundColor = UIColor.gray
UITabBar.appearance().standardAppearance = appearance
UITabBar.appearance().scrollEdgeAppearance = appearance
...
環境
- Xcode 13.0 beta 5
- iOS 15.0
背景
iOS 15
からUITabBar
の背景が取り除かれたため、明示的に背景色を指定する必要があった。
- UITabBarについて
- WWDC2021のビデオ 5:40〜 https://developer.apple.com/videos/play/wwdc2021/10059/
実装にあたり
UITabBar
クラスのstandardAppearance (iOS 13.0+)
とscrollEdgeAppearance (iOS 15.0+)
の2つのプロパティにUITabBarAppearance
のインスタンスをセットしてタブバーの背景を有効にする。
standardAppearance (iOS 13.0+)
をセットしないとデフォルトの外観(白?)が設定される。
https://developer.apple.com/documentation/uikit/uitabbar/3198046-standardappearance?changes=_7
(The default value of this property is an appearance object containing the system's default appearance settings.)
scrollEdgeAppearance (iOS 15.0+)
がnil
にしてしまうと、背景が透明になる模様。
https://developer.apple.com/documentation/uikit/uitabbar/3750912-scrolledgeappearance?changes=_7
(If the value of this property is nil, UIKit uses the value of the tab bar’s standardAppearance property, modified to have a transparent background.)
参考サイト
- StackOverFlow
- ドキュメント