タブバー項目を選択時にデフォルトの青ではなくピンクに変更します。
Xcode 6のストーリーボードエディタを使用してこれを達成するにはどうすればよいですか。
これは私の現在の設定ですが、青い背景は機能しますが、ピンクは機能しません。
StoryBoardから "tintColor"というランタイムカラー属性を追加します。これは動作しています(Xcode 8以降では)。
あなたが選択されていない色が欲しいなら..あなたもunselectedItemTintColor
を追加することができます。
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値を使うでしょう。
Swift 3 | Xcode 10
すべてのタブバー項目を同じ色にする(選択した状態と選択していない状態)...
ステップ1
イメージアセットがにレンダリング=テンプレートイメージに設定されていることを確認してください。これは彼らが色を継承することを可能にします。
ステップ2
ストーリーボードエディタを使用して、タブバーの設定を次のように変更します。
ステップ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のシーンコントローラに割り当てます。
ストーリーボードエディタで選択されていないアイコンの色を変更する方法を見つけたら、教えてください。ありがとうございます。
色を変更したいView ControllerのviewDidLoadにこのコードを配置します。
[[UITabBar appearance] setSelectedImageTintColor:[UIColor whiteColor]];
XCode 8.2、iOS 10、Swift 3:unselectedItemTintColor
にtabBar
属性が追加されました:
self.tabBar.unselectedItemTintColor = UIColor(red: 0/255.0, green: 200/255.0, blue: 0/255.0, alpha: 1.0)
ストーリーボードごとにUITabBarItemの色を変更できますが、コードごとに色を変更する場合は非常に簡単です。
//選択したバーの色を変える
[[UITabBar appearance] setTintColor:[UIColor blueColor]];
//変更されていない小節の場合(iOS 10)
[[UITabBar appearance] setUnselectedItemTintColor:[UIColor yellowColor]];
//そしてすべてのタブバーの色を変更するためのこの行
[[UITabBar appearance] setBarTintColor:[UIColor whiteColor]];
このコードをアプリのデリゲートに追加します-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を入れる
どういうわけか私たちはストーリーボードだけを使ってTab Barの選択されたアイテムのTintカラーを変更することができません、それで私は私のViewDidLoadに以下のコードを追加しました、これが助けを願っています。
[[UITabBar appearance] setTintColor:[UIColor whiteColor]];
これは、iOS 10で動作するSwift 3のソリューションです。
まず、独自のTab Bar Controllerサブクラスを作成し、それをストーリーボードのTab Controllerに追加します。 viewDidLoad()
メソッドでは、タブバーをカスタマイズできます。 tintColor
のtabBar
属性は、選択されていない項目の色ではなく、選択された項目の色を表すことをここで説明します。選択されていないアイテムの色を変更するには、各アイテムをループして画像の元の色を使用することをお勧めします。そうすれば、それらは自動的にグレーとしてレンダリングされません。
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 )
}
}
}
}
}
このアプローチの唯一の欠点は、あなたの商品画像がすでにあなたが目指す希望の色を持っていなければならないということです。
この最良の方法はストーリーボードのImage Tint
を変更することです
UITabBarController
をサブクラス化して、ストーリーボードでそれを置き換えることができます。サブクラスのviewDidLoad
実装でこれを呼び出します。
[self.tabBar setTintColor:[UIColor greenColor]];