資産カタログで設定された画像に「テンプレート画像」が設定されていても、タブバーのアイコンの背景に白い背景が表示されます。ここではいくつかの例は以下のとおりです。iOSシミュレータでは、テンプレートレンダリングモードの透過画像に白い背景が表示されます
上ですべての設定はありません背景UITabBar
同じ画像暗く、コントラストが
同じアイコンの背景を引き出すように変更赤い背景を使用していますが、UITabBar.appearance().barTintColor = red
ここでiOSの設定で、すべての3つのサイズでエクスポートされたスケッチのiOSのUIライブラリーから、新たにエクスポートされた形状は、です:
私は
を使用して、最終的なPNGPixelmatorから見た透明度を示すPNG
イメージは、アセットカタログ内およびプログラムによってテンプレートモードに設定されています。それぞれの背景には、UITabBar
のappearance()
で設定し、私はUITabBarController
をサブクラスではないよ、と私はストーリーボードを使用していないよ、とここで私は単純化するvar名前で、この問題を再現する必要があるすべてのコードです:
// AppDelegate
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
window = UIWindow(frame: UIScreen.main.bounds)
let tabBarController = UITabBarController()
// let controllers = [...]
tabBarController.setViewControllers(controllers, animated: false)
UITabBar.appearance().tintColor = UIColor.brown
UITabBar.appearance().barTintColor = // red, green, etc
window!.rootViewController = tabBarController
window!.makeKeyAndVisible()
return true
}
そしてここにはあります私はそのコントローラにUITabBarItem
を設定する場所:
// The controller with the tab icon
override init(style: UITableViewStyle) {
super.init(style: style)
let booImage = UIImage(named: "boo")?.withRenderingMode(.alwaysTemplate)
self.tabBarItem = UITabBarItem(title: "Controller", image: booImage, tag: 1)
}
を除けば、コードのこれらの数行から、これは他の変化と新鮮なプロジェクトです。私が望むどんな色にも色を付けることができるので、イメージがテンプレートであることがわかりますが、白い背景が常に残っています。
ドキュメントに基づいて、テンプレート画像をUITabBarItem
アイコンとして使用するために必要な他の手順はありません。誰でも、UITabBarItemsに白い背景が表示される理由を知っていますか?それはシミュレータで実行されているという事実と関係がありますか?
は、(以下私の答えを参照)を再現することはできません。シンプルなデモンストレーションプロジェクトをどこかに投稿したいのであれば、私はそれをダウンロードして見てうれしいです。 – matt
さて、それを得ました、ごめんなさい!もうやりません。編集:私は前にそれをやって覚えていないが、教訓を学んだ – bpercevic
それは大丈夫です。私たちはフォーラムではないことを覚えておいてください。 「バンプ」や「解決済み」などを追加しないでください。ありがとう。 ;) – Moritz