web-dev-qa-db-ja.com

ストーリーボードのタブエントリの選択色を変更する

タブバー項目を選択時にデフォルトの青ではなくピンクに変更します。

Xcode 6のストーリーボードエディタを使用してこれを達成するにはどうすればよいですか。

これは私の現在の設定ですが、青い背景は機能しますが、ピンクは機能しません。

enter image description here

153
Deekor

StoryBoardから "tintColor"というランタイムカラー属性を追加します。これは動作しています(Xcode 8以降では)。

あなたが選択されていない色が欲しいなら..あなたもunselectedItemTintColorを追加することができます。

setting tintColor as Runtime Attribute

377
Mehul Thakkar

このエレガントなソリューションは、 Swift 3.0 および Swift 4.0 に最適です。

ストーリーボード上:

  1. タブバーを選択してください
  2. tintColor という名前のランタイム属性 選択されたアイコンの希望の色 に設定します - /
  3. unselectedItemTintColor と呼ばれるランタイム属性 選択されていないアイコンの希望の色 に設定します - /タブバーに

enter image description here

編集:iOS 10以降のXcode 8でテスト。

151

Swiftでは、xcode 7(およびそれ以降)を使用して、AppDelegate.Swiftファイルに以下を追加できます。

UITabBar.appearance().tintColor = UIColor(red: 255/255.0, green: 255/255.0, blue: 255/255.0, alpha: 1.0)

これが完全なメソッドの外観です。

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

    // I added this line
    UITabBar.appearance().tintColor = UIColor(red: 255/255.0, green: 255/255.0, blue: 255/255.0, alpha: 1.0)

    return true
}

上の例では、私のアイテムは白になります。 "/255.0"は0から1までの値を期待するので必要とされます。白のために、私はちょうど1を使ったかもしれません。しかし、他の色のためにあなたはおそらくRGB値を使うでしょう。

58
Jarrod

Xcode8では、ImageTintをストーリーボードから変更しましたが、うまく機能します。

enter image description here

結果:

enter image description here

42

Swift 3 | Xcode 10

すべてのタブバー項目を同じ色にする(選択した状態と選択していない状態)...


ステップ1

イメージアセットがにレンダリング=テンプレートイメージに設定されていることを確認してください。これは彼らが色を継承することを可能にします。

Xcode Assets


ステップ2

ストーリーボードエディタを使用して、タブバーの設定を次のように変更します。

  • Tab Bar:Image Tintを選択したアイコンに継承させたい色に設定します。
  • Tab Bar:Bar TintをTab Barの色に設定します。
  • View:Tintをストーリーボードエディタで表示したい色に設定します。これは、アプリケーションの実行時のアイコンの色には影響しません。

Xcode Storyboard Editor


ステップ3

手順1と2で、選択したアイコンの色が変わります。選択されていないアイテムの色を変更したい場合は、コードでそれを実行する必要があります。ストーリーボードエディタでそれを実行する方法が見つかりませんでした。

カスタムTab Bar Controllerクラスを作成します。

//  TabBarController.Swift

class TabBarController: UITabBarController {

    override func viewDidLoad() {
        super.viewDidLoad()

        // make unselected icons white
        self.tabBar.unselectedItemTintColor = UIColor.white
    }
}

...そしてカスタムクラスをTab Barのシーンコントローラに割り当てます。

Xcode Storyboard Editor


ストーリーボードエディタで選択されていないアイコンの色を変更する方法を見つけたら、教えてください。ありがとうございます。

15
Derek Soike

色を変更したいView ControllerのviewDidLoadにこのコードを配置します。

[[UITabBar appearance] setSelectedImageTintColor:[UIColor whiteColor]];
9
Nick

XCode 8.2、iOS 10、Swift 3:unselectedItemTintColortabBar属性が追加されました:

self.tabBar.unselectedItemTintColor = UIColor(red: 0/255.0, green: 200/255.0, blue: 0/255.0, alpha: 1.0)
7
ComboPrime

選択したイメージバーの色合いをキーパスで設定することもできます。

enter image description here

これがお役に立てば幸いです!ありがとう

7
Arvind Kumar

ストーリーボードごとにUITabBarItemの色を変更できますが、コードごとに色を変更する場合は非常に簡単です。

//選択したバーの色を変える

   [[UITabBar appearance] setTintColor:[UIColor blueColor]];

//変更されていない小節の場合(iOS 10)

   [[UITabBar appearance] setUnselectedItemTintColor:[UIColor yellowColor]];

//そしてすべてのタブバーの色を変更するためのこの行

   [[UITabBar appearance] setBarTintColor:[UIColor whiteColor]];
6
Genevios

このコードをアプリのデリゲートに追加します-did_finish_launching_with_options関数

UITabBar.appearance().tintColor = UIColor( red: CGFloat(255/255.0), green: CGFloat(99/255.0), blue: CGFloat(95/255.0), alpha: CGFloat(1.0) )

必要な色のRGBを入れる

5
SHINTO JOSEPH

どういうわけか私たちはストーリーボードだけを使ってTab Barの選択されたアイテムのTintカラーを変更することができません、それで私は私のViewDidLoadに以下のコードを追加しました、これが助けを願っています。

[[UITabBar appearance] setTintColor:[UIColor whiteColor]]; 
5
skypirate

これは、iOS 10で動作するSwift 3のソリューションです。

まず、独自のTab Bar Controllerサブクラスを作成し、それをストーリーボードのTab Controllerに追加します。 viewDidLoad()メソッドでは、タブバーをカスタマイズできます。 tintColortabBar属性は、選択されていない項目の色ではなく、選択された項目の色を表すことをここで説明します。選択されていないアイテムの色を変更するには、各アイテムをループして画像の元の色を使用することをお勧めします。そうすれば、それらは自動的にグレーとしてレンダリングされません。

class CustomTabBarVC: UITabBarController
{
    override func viewDidLoad()
    {
        super.viewDidLoad()

        self.tabBar.tintColor = AppColor.normalRed
        self.tabBar.barTintColor = .white
        self.tabBar.isTranslucent = true

        if let items = self.tabBar.items
        {
            for item in items
            {
                if let image = item.image
                {
                    item.image = image.withRenderingMode( .alwaysOriginal )
                }
            }
        }
    }
}

このアプローチの唯一の欠点は、あなたの商品画像がすでにあなたが目指す希望の色を持っていなければならないということです。

4
AndreasLukas

この最良の方法はストーリーボードのImage Tintを変更することです

3
Jadian

UITabBarControllerをサブクラス化して、ストーリーボードでそれを置き換えることができます。サブクラスのviewDidLoad実装でこれを呼び出します。

[self.tabBar setTintColor:[UIColor greenColor]];
2
chancyWu