5

UITabBarコンパクトな horizo​​ntalSizeClass を持つ traitCollection が必要です。通常の horizo​​ntalSizeClass では、UITabBarTabBarIcon と Title を並べてレンダリングするためです。

サブクラスUITabBar化し、traitCollection ゲッターをオーバーライドして、修正された traitCollection を提供しました。

override var traitCollection: UITraitCollection{
    let current = super.traitCollection
    let compact = UITraitCollection(horizontalSizeClass: .compact)
    return UITraitCollection(traitsFrom: [current, compact])
}

これは仕事をしますが、警告を下回り始めました

クラス MyTabBar は、サポートされていない -traitCollection ゲッターをオーバーライドします。特性をオーバーライドしようとしている場合は、適切な API を使用する必要があります。

Apple ドキュメントを確認した後、overrideTraitCollection(forChild:)という 1 つの API を見つけ ましたが、UITabBar を保持する viewController には通常の horizo​​ntalSizeClass が必要です。

同様の質問も見つけましたが、の traitCollection をオーバーライドするという私の質問には答えませんUIView

の traitCollection をオーバーライドしたくはありませんUIViewControllerが、UIView.

の traitCollection をオーバーライドする正しい方法は何UIViewですか?

4

0 に答える 0