私はiphone開発の初心者です。タブバーにカスタム画像アイコンを配置する必要があります。ただし、デフォルトの色(黒と青)のみが表示されます。このバグのフレンドからの克服を手伝ってください...?
アプリケーションに画像を追加し、
添付画像を見る
このコードをviewDidLoadで使用します
UIImage *selectedImage0 = [UIImage imageNamed:@"selected.png"];
UIImage *unselectedImage0 = [UIImage imageNamed:@"unselected.png"];
UITabBarItem *item0 = [tabBar.items objectAtIndex:0];
[item0 setFinishedSelectedImage:selectedImage0 withFinishedUnselectedImage:unselectedImage0];
このコードスニペットをios7に使用できます。
UIImage *iconBoxOffice = [UIImage imageNamed:@"box-office.png"];
UIImage *selectedIconBoxOffice = [UIImage imageNamed:@"selected-box-office.png"];
UIImage *iconDvds = [UIImage imageNamed:@"dvds.png"];
UIImage *selectedIconDvds = [UIImage imageNamed:@"dvds.png"];
UITabBar *tabBar = self.tabBarController.tabBar;
UITabBarItem *item0 = [tabBar.items objectAtIndex:0];
UITabBarItem *item1 = [tabBar.items objectAtIndex:1];
[item0 initWithTitle:@"Box Office" image:iconBoxOffice selectedImage:selectedIconBoxOffice];
[item1 initWithTitle:@"Dvds" image:iconDvds selectedImage:selectedIconDvds];
さらにタブがある場合は、さらに項目を追加できます。 *プロジェクトに画像を追加することを忘れないでください*これはストーリーボードを使用せずにプログラムで行われます
AppDelegateで以下のコードを使用
(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UIViewController *viewController1 = [[ViewFirstViewController alloc] init];
UIViewController *viewController2 = [[ViewSecondViewController alloc] init];
UIViewController *viewController3 = [[ViewThirdViewController alloc] init];
UIViewController *viewController4 = [[ViewFourthViewController alloc] init];
self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:viewController1, viewController2,viewController3,viewController4, nil];
self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];
imgTab = [[UIImageView alloc]initWithFrame:CGRectMake(0,0,320.0,50)];
self.tabBarController.tabBar.tag=10;
[self.tabBarController.tabBar addSubview:imgTab];
self.tabBarController.delegate = self;
imghome=[[UIImageView alloc]initWithFrame:CGRectMake(0.0,00.0,80.0,50.0)];
imghome.image=[UIImage imageNamed:@"dressup_active.png"];
[imgTab addSubview:imghome];
imgQuiz=[[UIImageView alloc]initWithFrame:CGRectMake(80.0,00.0,81.0,50.0)];
imgQuiz.image=[UIImage imageNamed:@"x-mas_tree.png"];
[imgTab addSubview:imgQuiz];
imgtTW=[[UIImageView alloc]initWithFrame:CGRectMake(161.0,00.0,80.0,50.0)];
imgtTW.image=[UIImage imageNamed:@"greetings.png"];
[imgTab addSubview:imgtTW];
imgGuest=[[UIImageView alloc]initWithFrame:CGRectMake(241.0,00.0,80.0,50.0)];
imgGuest.image=[UIImage imageNamed:@"quotes_tab.png"];
[imgTab addSubview:imgGuest];
}
Tabbar Controllerデリゲートメソッド
- (void)tabBarController:(UITabBarController *)tabBarControllers didSelectViewController:(UIViewController *)viewController
{
NSLog(@"%i",tabBarControllers.selectedIndex);
if (tabBarControllers.selectedIndex == 0)
{
imghome.image=[UIImage imageNamed:@"dressup_active.png"];
imgQuiz.image=[UIImage imageNamed:@"x-mas_tree.png"];
imgtTW.image=[UIImage imageNamed:@"greetings.png"];
imgGuest.image=[UIImage imageNamed:@"quotes_tab.png"];
}
else if (tabBarControllers.selectedIndex == 1)
{
imghome.image=[UIImage imageNamed:@"dressup.png"];
imgQuiz.image=[UIImage imageNamed:@"x-mas_tree_active.png"];
imgtTW.image=[UIImage imageNamed:@"greetings.png"];
imgGuest.image=[UIImage imageNamed:@"quotes_tab.png"];
}
else if (tabBarControllers.selectedIndex == 2)
{
imghome.image=[UIImage imageNamed:@"dressup.png"];
imgQuiz.image=[UIImage imageNamed:@"x-mas_tree.png"];
imgtTW.image=[UIImage imageNamed:@"greetings_active.png"];
imgGuest.image=[UIImage imageNamed:@"quotes_tab.png"];
}
else if (tabBarControllers.selectedIndex == 3)
{
imghome.image=[UIImage imageNamed:@"dressup.png"];
imgQuiz.image=[UIImage imageNamed:@"x-mas_tree.png"];
imgtTW.image=[UIImage imageNamed:@"greetings.png"];
imgGuest.image=[UIImage imageNamed:@"quotes_active.png"];
}
}
青いアイコンを変更するだけでなく、カスタム画像(アイコンと背景)をタブバーに追加する場合:
以下のコードを最初のUIView .mファイルに追加します。 「タブ付きアプリケーション」プロジェクトから始めた場合は、FirstViewController.mと呼ばれます。プロジェクトに画像を追加し(「アイテムを宛先グループのフォルダーにコピーする」にチェックマークを付けて)、画像に適切な名前を選択することを忘れないでください。
- (void)viewDidLoad
{
[super viewDidLoad];
UIImage *selectedImage0 = [UIImage imageNamed:@"customIcon0_unpressed.png"];
UIImage *unselectedImage0 = [UIImage imageNamed:@"customIcon0_unpressed.png"];
UIImage *selectedImage1 = [UIImage imageNamed:@"customIcon1_unpressed.png"];
UIImage *unselectedImage1 = [UIImage imageNamed:@"customIcon1_unpressed.png"];
UITabBar *tabBar = self.tabBarController.tabBar;
UITabBarItem *item0 = [tabBar.items objectAtIndex:0];
UITabBarItem *item1 = [tabBar.items objectAtIndex:1];
[item0 setFinishedSelectedImage:selectedImage0 withFinishedUnselectedImage:unselectedImage0];
[item1 setFinishedSelectedImage:selectedImage1 withFinishedUnselectedImage:unselectedImage1];
}
Ray Wenderlichs のページで、このソリューションの詳細とその他の素晴らしいチュートリアルを見つけることができます。