私はこの質問が以前にも尋ねられたことを知っていますが、それでもインターネットで解決策を検索する解決策は得られませんでした。
私は次の投稿を参照しました:
iOS 7でtabBarItemsのテキストとアイコンの色を変更するにはどうすればよいですか?tintColor
を使用してのみ選択したアイコンの色を変更できます。
iOS 7で選択されていないタブバーアイテムの色を変更するにはどうすればよいですか?これには、UIViewから継承された独自のGozTabBar
クラスが記述されています
選択されていない状態のUITabBar
アイコンのデフォルトの灰色を変更したい。
任意の助けをいただければ幸いです。前もって感謝します。
TintColorを使用して色を変更したくないと思いますか?もう1つのオプションは、まったく同じように見えますが、色が異なる2つの画像を使用することです。 1つの画像は選択されたタブで、もう1つの画像は選択されていません。
_AppDelegate.m
_ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
関数で、これを試してください。
_UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;
UITabBar *tabBar = tabBarController.tabBar;
// repeat for every tab, but increment the index each time
UITabBarItem *firstTab = [tabBar.items objectAtIndex:0];
// also repeat for every tab
firstTab.image = [[UIImage imageNamed:@"someImage.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ];
firstTab.selectedImage = [[UIImage imageNamed:@"someImageSelected.png"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
_
編集:ルートビューコントローラーとしてタブバーコントローラーを持っていない人のために、このようにコントローラーをつかむことができ、コードの残りの部分は同じです。
_UITabBarController *tabBarController = self.tabBarController;
_
Storyboardを使用してタブバーの画像を既に構成している場合は、最初のビューのViewDidLoadで次のメソッドを呼び出すだけです。
-(void) configTabBar
{
UITabBarController *tabBarController = [self tabBarController];
UITabBar *tabBar = tabBarController.tabBar;
for (UITabBarItem *tab in tabBar.items) {
tab.image = [tab.image imageWithRenderingMode: UIImageRenderingModeAlwaysOriginal];
tab.selectedImage = [tab.image imageWithRenderingMode: UIImageRenderingModeAlwaysOriginal];
}
}
[[UITabBar appearance] setTintColor:[UIColor colorWithRed:252/255.0 green:218/255.0 blue:49/255.0 alpha:1.0]];
tabBarItem1.image = [[UIImage imageNamed:@"home_icon.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
tabBarItem1.selectedImage = [UIImage imageNamed:@"home_icon_selected.png"];
[[UITabBar appearance] setBackgroundColor:[UIColor colorWithRed:15/255.0 green:85/255.0 blue:160/255.0 alpha:1.0]];
// Change the title color of tab bar items
[[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
[UIColor whiteColor], NSForegroundColorAttributeName,
nil] forState:UIControlStateNormal];
UIColor *titleHighlightedColor = [UIColor colorWithRed:252/255.0 green:218/255.0 blue:49/255.0 alpha:1.0];
[[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
titleHighlightedColor, NSForegroundColorAttributeName,
nil] forState:UIControlStateHighlighted]
iOS8で強調表示されたUIControlStateを選択されたUIControlStateに変更します
[[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
[UIColor whiteColor], NSForegroundColorAttributeName,
nil] forState:UIControlStateNormal];
[[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
titleHighlightedColor, NSForegroundColorAttributeName,
nil] forState:UIControlStateSelected]