🚀
iPadOS 18からタブバーの位置が変わるのでタブベースのアプリは気をつけた方が良い
今週からiPadOS 18がリリースとなっています。
予想外の挙動があったので、記事を書きます。
これもっと騒がれていいのに、と思ったんですが、僕が見えてないところで騒がれてたりしたんでしょうか……
タブバーが上部に来る
iPadOS 18から、タブバーが上部に来るようにデフォルトが変更になりました。
新デザインになる条件は、Xcode 16.0以上でビルドされたアプリかつiPadOS 18です。
(コンパイラーがいくつ、とかのもうちょい厳密な条件あるかもですが)
そしてUIKit/SwiftUIどちらでも適用されます。
旧デザインのままにするためには、新しい指定が要ります(後述)。
WWDC2024では
WWDC2024でも、このタブバーの変更は触れられてはいました。
(忘れてましたが……)
What’s new in UIKit
これ僕は勝手に「こういう指定ができるようになったよ!」という変更だと解釈してたんですが、
がっつりデフォルト挙動になっていました。
またSwiftUIのTabView
でも適用されます。
非適用にするためには
繰り返しますが、デフォルト挙動なので、下部のタブバーのままにしたければ、新たな指定が必要です。
// SwiftUI
TabView {
// …
}
.environment(\.horizontalSizeClass, .compact)
// UIKit
class TabBarController: UITabBarController {
override func viewDidLoad() {
super.viewDidLoad()
if #available(iOS 17.0, *) {
traitOverrides.horizontalSizeClass = .compact
}
}
}
追記(2024/09/25)
↑この対応入れても、タブバーのheightやボタン間隔が若干変わった気がします。
関連
(了)
Discussion