現在、Xcode 5 を使用してリスト指向のアプリを開発しています。タブバーのカスタム色合い、タブアイコンのカスタム画像、選択されたときのタブバーのアイコン画像のカスタム色合いがありますが、選択されていないときのアイコン画像の色合いをカスタマイズする方法が見つかりません。現在、私の緑色のタブバーとは対照的に、ほとんど見えないデフォルトの灰色です. タブバーのアイコンの画像と名前を白くしたい。
Xcode 5でタブバーアイコンの画像の色合いを設定する方法を知っている人はいますか?
各タブの (選択されていない) 画像のレンダリング モードを に設定する必要がありますUIImageRenderingModeAlwaysOriginal
。したがって、アプリ デリゲートで、タブ バーへの参照を取得してから、各タブ バー項目を反復処理して、イメージ モードを調整します。
タブバーへの参照を取得するより良い方法があるかもしれませんが、私は次のことを行いました:
UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UITabBarController *tbc = [sb instantiateInitialViewController];
self.window.rootViewController = tbc;
UITabBar *tb = tbc.tabBar;
次に、画像調整を次のように実行できます。
NSArray *items = tb.items;
for (UITabBarItem *tbi in items) {
UIImage *image = tbi.image;
tbi.selectedImage = image;
tbi.image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
}
「ユーザー定義のランタイム属性」を追加することで、コードを記述せずにストーリーボードから純粋にこれを行うことができます。
ビジュアル エディターにタブ バーがある場合は、ここで行うことができます。タブ バーを選択し、[ユーザー定義のランタイム属性] に属性を追加します: キー パス: selectedImageTintColor タイプ: 色 値:
この方法を試してください..それは私のために働いた
アプリ内デリゲート
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
UITabBarController *tabBarController=(UITabBarController*)(self.window.rootViewController);
UITabBar *tabBar=tabBarController.tabBar;
UITabBarItem *tabBarItem1=[[tabBar items] objectAtIndex:0];//first tab bar
[tabBarItem1 setFinishedSelectedImage:[UIImage imageNamed:@"yourImageSelected.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"yourImageUnselected.png"]];//image should be 30 by 30
}
走って行きます
選択された画像と選択されていない画像を使用してカスタム タブバーを設定します。また、中央にtabbarItem Image Insetsの位置があります
UITabBar *tabBar = self.tabBarController.tabBar;
UITabBarItem *item0 = [tabBar.items objectAtIndex:0];
UITabBarItem *item1 = [tabBar.items objectAtIndex:1];
UITabBarItem *item2 = [tabBar.items objectAtIndex:2];
UITabBarItem *item3 = [tabBar.items objectAtIndex:3];
[item0 setFinishedSelectedImage:[UIImage imageNamed:@"iconBlue.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"iconGray.png"] ];
[item1 setFinishedSelectedImage:[UIImage imageNamed:@"iconBlue2.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"icon-2.png"]];
[item2 setFinishedSelectedImage:[UIImage imageNamed:@"iconBlue3.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"icon-3.png"]];
[item3 setFinishedSelectedImage:[UIImage imageNamed:@"iconBlue4.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"icon-4.png"]];
item0.imageInsets = UIEdgeInsetsMake(6, 0, -6, 0);
item1.imageInsets = UIEdgeInsetsMake(6, 0, -6, 0);
item2.imageInsets = UIEdgeInsetsMake(6, 0, -6, 0);
item3.imageInsets = UIEdgeInsetsMake(6, 0, -6, 0);
**最初のビューコントローラーの viewWillAppear メソッド内。**
setFinishedSelectedImage:withFinishedUnselectedImage は非推奨になっているため、次のように置き換えて、Ram S の回答を変更したバージョンを使用しました。
[item0 setFinishedSelectedImage:[UIImage imageNamed:@"iconBlue.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"iconGray.png"] ];
と:
[item0 setImage:[[UIImage imageNamed:@"iconGray.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
[item0 setSelectedImage:[[UIImage imageNamed:@"iconBlue.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
詳細については、「 UITabBarItem setFinishedSelectedImage: iOS7で非推奨」を参照してください。