web-dev-qa-db-ja.com

選択されていないUITabBarControllerアイテムのタイトルと背景画像のtintColorを変更します

未選択のUITabBarItemタイトルと背景画像iOS 8のtintColorを変更するにはどうすればよいですか?

選択されていない状態のデフォルトの色は明るい灰色ですが、暗い影のUITabBar背景には表示されません

選択されていない状態の色を[UIColor blackColor]にしたい

私のアプリのデリゲート内部でオプションを使用して完了しました:私は持っています

UIImage *deselectedE = [[UIImage imageNamed:@"mincraft_axe_green_32.png"] imageWithRenderingMode:UIImageRenderingModeAutomatic];
UIImage *selectedE = [[UIImage imageNamed:@"mincraft_axe_green_32.png"] imageWithRenderingMode:UIImageRenderingModeAutomatic];
e.tabBarItem =  [[UITabBarItem alloc] initWithTitle:@"Profile" image:deselectedE selectedImage:selectedE];
[[UITabBar appearance] setTintColor:[UIColor blackColor]];
17

理解した!

これを使用して、テキストの色を変更します。

[[UITabBarItem appearance] setTitleTextAttributes:@{ NSForegroundColorAttributeName : [UIColor greenColor] }
                                         forState:UIControlStateNormal];
[[UITabBarItem appearance] setTitleTextAttributes:@{ NSForegroundColorAttributeName : [UIColor blackColor] }
                                         forState:UIControlStateSelected];

そして、画像の画像レンダリングモードがORIGINALに設定されていることを確認します

UIImage *deselectedImage = [[UIImage imageNamed:@"deselectedImage"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
UIImage *selectedImage = [[UIImage imageNamed:@"selectedImage"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
47

application didFinishLaunchingWithOptions:内のAppDelegate.mで、次のコードを使用します。

//unselected icon tint color 
[[UIView appearanceWhenContainedIn:[UITabBar class], nil] setTintColor:[UIColor redColor]];

//selected tint color 
[[UITabBar appearance] setTintColor:[UIColor greenColor]];

//text tint color 
[[UITabBarItem appearance] setTitleTextAttributes:@{ NSForegroundColorAttributeName : [UIColor whiteColor] }
                                     forState:UIControlStateNormal];

//background tint color 
[[UITabBar appearance] setBarTintColor:[UIColor blueColor]];
22
TheSD

コードを記述せずに、アセットファイルの属性インスペクターから画像をオリジナルとしてレンダリングすることもできます。

enter image description here

14
Bhavuk Jain

ストーリーボードで直接設定することもできます...ここで私の答えを確認してください: ITabBarItemの選択されていない色合いの設定方法、***システムアイテムを含む***(iOS7)

Storyboardを使用している場合は、Bar ItemImageSelected ImageSelected Bar Itemの両方を設定して、tabBarで変更されていない画像を取得することもできます。

または、Assetsカタログで、画像の属性でRender AsOriginal Imageを選択できます(View> Utilities> Show Attributes Inspectorまたはショートカット⌥⌘4(Option + Command + 4))

0
Hugues BR