2012-04-27 5 views
4

iOS開発を始めたばかりで、atmの周りで遊んでいます。iOSカスタムタブバー

私は、デフォルトのタブバーボタンをさらにカスタムに変換しようとしています。後

私はあなたがすべてのボタンにカスタム状態を作成することができたので、私がやったの周り探していくつか:

UIImage *selectedImage0 = [UIImage imageNamed:@"first.png"]; 
UIImage *unselectedImage0 = [UIImage imageNamed:@"second.png"]; 

UITabBar *tabBar = self.tabBarController.tabBar; 
UITabBarItem *item0 = [tabBar.items objectAtIndex:0]; 

[item0 setFinishedSelectedImage:selectedImage0 withFinishedUnselectedImage:unselectedImage0]; 

しかし、私はそれが画像を変更し、デフォルトボタンを取り除くことはできませんが、それボタン全体が変わらない

私は何か他に何かする必要がありますか?

UIViewController *viewController1 = [[FirstViewController alloc]  initWithNibName:@"FirstViewController" bundle:nil]; 
UIViewController *viewController2 = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil]; 

self.tabBarController = [[UITabBarController alloc] init];  
self.tabBarController.viewControllers = [NSArray arrayWithObjects:viewController1, viewController2, nil]; 
self.window.rootViewController = self.tabBarController; 
[self.window makeKeyAndVisible]; 

UIImage *selectedImage0 = [UIImage imageNamed:@"first.png"]; 
UIImage *unselectedImage0 = [UIImage imageNamed:@"second.png"]; 

UITabBar *tabBar = self.tabBarController.tabBar; 
UITabBarItem *item0 = [tabBar.items objectAtIndex:0]; 

[item0 setFinishedSelectedImage:selectedImage0 withFinishedUnselectedImage:unselectedImage0]; 
+0

http://stackoverflow.com/questions/4710298/how-can-i-create-custom-tab-bar-add-custom-images-in-tab-bar-without-xib-cha...Visitこのスタックポスト.. – Nit

+0

このチュートリアルとカスタムタブバーのソースコードを参照してください。 [カスタムタブバー](http://cocoacontrols.com/search?utf8=%E2%9C%93&q=tabbar) –

+0

[この回答](http://stackoverflow.com/questions/41139914/how-to-make- multiple-color-tab-bar-in-swift-3/41140329#41140329)が役に立ちます。 –

答えて

4

ここでは、カスタムタブバーを作成しました。画像は定数ファイルに保存されています。ここであなたの都合に合わせて画像を "foo.png"に置き換えることができます。 serivceImg、contactImgなどは、.hファイルで宣言されたUIImageViewです。また、.hファイルに代理人としてUITabBarControllerDelegateを追加することを忘れないでください。

-(void)setUpTabBar { 

tabBar = [[UITabBarController alloc] init]; 

Services *firstViewController = [[Services alloc]init]; 
firstViewController.tabBarItem = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemFavorites tag:1]; 
UINavigationController *firstNavController = [[UINavigationController alloc]initWithRootViewController:firstViewController]; 

ContactUs *secondViewController = [[ContactUs alloc]init]; 
secondViewController.tabBarItem = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemFavorites tag:2]; 
UINavigationController *secondNavController = [[UINavigationController alloc]initWithRootViewController:secondViewController]; 

Bookings *thirdViewController = [[Bookings alloc]init]; 
thirdViewController.tabBarItem = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemFavorites tag:3]; 
UINavigationController *thirdNavController = [[UINavigationController alloc]initWithRootViewController:thirdViewController]; 

Reward *fourthViewController = [[Reward alloc]init]; 
fourthViewController.tabBarItem = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemRecents tag:4]; 
UINavigationController *fourthNavController = [[UINavigationController alloc]initWithRootViewController:fourthViewController]; 

tabBar.viewControllers = [[NSArray alloc] initWithObjects:firstNavController, secondNavController, thirdNavController, fourthNavController, nil]; 
tabBar.delegate=self; 
tabBar.selectedIndex=0; 

[firstNavController release]; 
[firstViewController release]; 

[secondNavController release]; 
[secondViewController release]; 

[thirdNavController release]; 
[thirdViewController release]; 

[fourthNavController release]; 
[fourthViewController release]; 

serivceImg=[[UIImageView alloc]initWithFrame:CGRectMake(0, 432, 80, 49)]; 
serivceImg.image=[UIImage imageNamed:serviceHover]; 

contactImg=[[UIImageView alloc]initWithFrame:CGRectMake(81, 432,80, 49)]; 
contactImg.image=[UIImage imageNamed:tabContact]; 

bookingImg=[[UIImageView alloc]initWithFrame:CGRectMake(162, 432,80, 49)]; 
bookingImg.image=[UIImage imageNamed:tabBooking]; 

rewardImg=[[UIImageView alloc]initWithFrame:CGRectMake(243, 432, 80, 49)]; 
rewardImg.image=[UIImage imageNamed:tabReward]; 

[tabBar.view addSubview:serivceImg]; 
[tabBar.view addSubview:contactImg]; 
[tabBar.view addSubview:bookingImg]; 
[tabBar.view addSubview:rewardImg]; 

[[[UIApplication sharedApplication]keyWindow]addSubview:tabBar.view]; 

[serivceImg release]; 
[contactImg release]; 
[bookingImg release]; 
[rewardImg release]; 

} 

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController1{ 

    if (viewController1 == [tabBar.viewControllers objectAtIndex:0]) 

{ 

    serivceImg.image = [UIImage imageNamed:kserviceHover]; 
    contactImg.image=[UIImage imageNamed:ktabContact]; 
    bookingImg.image=[UIImage imageNamed:ktabBooking]; 
    rewardImg.image=[UIImage imageNamed:ktabReward]; 


} 

else if (viewController1 == [tabBar.viewControllers objectAtIndex:1]) 

{ 

    serivceImg.image = [UIImage imageNamed:ktabService]; 
    contactImg.image=[UIImage imageNamed:kcontactHover]; 
    bookingImg.image=[UIImage imageNamed:ktabBooking]; 
    rewardImg.image=[UIImage imageNamed:ktabReward]; 

} 

else if (viewController1 == [tabBar.viewControllers objectAtIndex:2]) 

{ 

    serivceImg.image = [UIImage imageNamed:ktabService]; 
    contactImg.image=[UIImage imageNamed:ktabContact]; 
    bookingImg.image=[UIImage imageNamed:kbookingHover]; 
    rewardImg.image=[UIImage imageNamed:ktabReward]; 

} 

else if (viewController1 == [tabBar.viewControllers objectAtIndex:3]) 

{ 

    serivceImg.image = [UIImage imageNamed:ktabService]; 
    contactImg.image=[UIImage imageNamed:ktabContact]; 
    bookingImg.image=[UIImage imageNamed:ktabBooking]; 
    rewardImg.image=[UIImage imageNamed:krewardHover]; 

} 

} 

お試しください。こちらがお役に立ちます。

+0

こんにちは...ビューベースのアプリケーションでこの作業を行う方法。また、私の見解では、ナビゲーションバーと上部のタブバーと下部のもう1つのタブバーが必要です。 –

関連する問題