web-dev-qa-db-ja.com

iOS 13でタブバーの影の画像を設定できません

IOS13以前は、次のコードを使用してタブバーの上部の境界線を削除しました。

UITabBar.appearance().shadowImage = UIImage()
UITabBar.appearance().backgroundImage = UIImage()

しかし、iOS13では動作しません。これに対する解決策を探しています。何か考えはありますか?

6

IOS 13では、透明度を構成するための組み込みメソッドを使用して、外観ベースのアプローチを使用できます。

    if #available(iOS 13, *) {
        let appearance = self.tabBar.standardAppearance.copy()
        appearance.configureWithTransparentBackground()
        tabBar.standardAppearance = appearance
    } else {
        tabBar.backgroundImage = UIImage()
        tabBar.shadowImage = UIImage()
        tabBar.barTintColor = UIColor.clear
    }

そして、再び元に戻すには、configureWithDefaultBackground()を使用して同じことを実行できます。

    if #available(iOS 13, *) {
        let appearance = self.tabBar.standardAppearance.copy()
        appearance.configureWithDefaultBackground()
        tabBar.standardAppearance = appearance
    } else {
        tabBar.barTintColor = nil
        tabBar.backgroundImage = nil
        tabBar.shadowImage = nil
    }
1
Sune