1. ホーム
  2. ios

[解決済み] タブバーアイテムの画像と文字色を変更する iOS

2023-07-02 08:44:39

質問

私のタブバーはこちらです。

次の画像は、プログラムが実行され、"NEWS"の項目が選択されている様子を示しています。

バーティントカラーが思い通りに動作していることが確認できました

しかし、tintColorは画像にのみ影響し、テキストには影響しません。

また、アイテムが選択されると(上のニュースのように)、アイテムの色が青になります!

選択されているときはテキストの色が白に変わり、非選択のときは変わらないのはなぜですか?

基本的に項目の色と文字の色を常に白にしたいのですが、どうすればよいでしょうか?

どうすれば実現できるのでしょうか?よろしくお願いします。

個別の項目ごとにswiftのコードが必要なのでしょうか?

EDITです。

どのように解決するのですか?

UITabBarItemクラスのドキュメントより。

デフォルトでは、実際の非選択画像と選択画像は、ソース画像のアルファ値から自動的に作成されます。 ソースイメージのアルファ値から自動的に作成されます。システム着色を防ぐには システムカラーリングを防ぐには、画像に UIImageRenderingModeAlwaysOriginal を指定してください。

手がかりは、UIImageRenderingModeAlwaysOriginalを使用するかどうかではなく、重要なのはいつ使用するかです。

非選択項目のグレー色を防ぐには、非選択画像のシステム カラーリングを防ぐだけでよいでしょう。これを行う方法は次のとおりです。

var firstViewController:UIViewController = UIViewController()
// The following statement is what you need
var customTabBarItem:UITabBarItem = UITabBarItem(title: nil, image: UIImage(named: "YOUR_IMAGE_NAME")?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal), selectedImage: UIImage(named: "YOUR_IMAGE_NAME"))
firstViewController.tabBarItem = customTabBarItem

ご覧の通り、iOSにはUNSELECTEDの時だけ画像の元の色(白、黄色、赤など)を適用し、SELECTEDの時はそのままの色で表示するよう依頼しました。

また、選択状態に対して異なる色 (iOS のデフォルトの青色ではなく) を適用するために、タブ バーに色合いを追加する必要がある場合があります。上のスクリーン ショットのように、選択された状態に対して白色を適用しています。

self.tabBar.tintColor = UIColor.whiteColor()

EDITです。