2012-07-05 110 views
2

我有UITabBarControllerUITabBar它有三个UITabBarItem。 项目是与故事板。我如何为每个UITabBarItem设置不同的图像?UITabBar图像与故事板的UITabBarItem

我想要做这样的事情:

TabBarItem1 -> image1_unselected and image1_selected

TabBarItem1 -> image2_unselected and image2_selected

TabBarItem1 -> image3_unselected and image3_selected

编辑:

也许我没有精确写的,但我想设置定制图像并制作UITabbar与自定义图形。类似于“查找我的朋友”应用中的UITabbar

回答

2

好的,我找到了解决办法。

在的viewDidLoadfirsTabBarViewController.m开始,我加入这个代码:

UIImage *selectedImage0 = [UIImage imageNamed:@"barBtn1_selected.png"]; 
UIImage *unselectedImage0 = [UIImage imageNamed:@"barBtn1.png"]; 

UIImage *selectedImage1 = [UIImage imageNamed:@"barBtn2_selected.png"]; 
UIImage *unselectedImage1 = [UIImage imageNamed:@"barBtn2.png"]; 

UIImage *selectedImage2 = [UIImage imageNamed:@"barBtn3_selected.png"]; 
UIImage *unselectedImage2 = [UIImage imageNamed:@"barBtn3.png"]; 

UITabBar *tabBar = self.tabBarController.tabBar; 

UITabBarItem *item0 = [tabBar.items objectAtIndex:0]; 
UITabBarItem *item1 = [tabBar.items objectAtIndex:1]; 
UITabBarItem *item2 = [tabBar.items objectAtIndex:2]; 

[item0 setFinishedSelectedImage:selectedImage0 withFinishedUnselectedImage:unselectedImage0]; 
[item1 setFinishedSelectedImage:selectedImage1 withFinishedUnselectedImage:unselectedImage1]; 
[item2 setFinishedSelectedImage:selectedImage2 withFinishedUnselectedImage:unselectedImage2]; 

现在我有什么我想在我的问题。

0

TabBar图像为32x32点或更小,并且自动为iOS设置样式,以出现在monochromatic配色方案中(无论您选择什么)。带有透明背景的简单线条图在创建标签栏界面艺术时效果最佳。

这是通过首先添加图像资源到您的项目。

然后点击你想要编辑,然后转到属性检查器TabBarItemAlt + Cmd + 4

然后改变“Identifier”到“Custom

最后,选择从图片下拉图像。

+0

也许我没有精确写在添加了AppDelegate.m下面的代码,但我想设置自定义图像并进行uitabbar与自定义图形。像“查找我的朋友”应用程序中的uitabbar。 – murzynpl 2012-07-05 10:46:56

+0

嗯,苹果喜欢保持事物的一致性,所以要以你想要的方式定制它,你必须创建自己的自定义TabBar。看看这些教程 - http://www.rumex.it/2010/07/how-to-customise-the-tab-bar-uitabbar-in-an-iphone-application-part-1-of-2 /&http://idevrecipes.com/2011/01/04/how-does-the-twitter-iphone-app-implement-a-custom-tab-bar/ – 2012-07-05 11:05:57

0

在每个viewcontroller中试试。

- >在initwithnibname ....;方法

self.tabBarItem.image = [UIImage imageNamed:@"image.png"];

0

murzynpl答案是正确的,但你也可以做到这一点通过didFinishLaunchingWithOptions方法

UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController; 
UITabBar *tabBar = tabBarController.tabBar; 
UITabBarItem *tabBarItem1 = [tabBar.items objectAtIndex:0]; 
UITabBarItem *tabBarItem2 = [tabBar.items objectAtIndex:1]; 

tabBarItem1.title = @"Home"; 
tabBarItem2.title = @"Favorites"; 

NSString *tabOneImage = [[NSString alloc] init]; 
NSString *tabOneImageSelected = [[NSString alloc] init]; 
NSString *tabTwoImage = [[NSString alloc] init]; 
NSString *tabTwoImageSelected = [[NSString alloc] init]; 

if ([UIScreen mainScreen].bounds.size.height > 480.0f) { 
    tabOneImageSelected = @"hom[email protected]"; 
    tabTwoImageSelected = @"[email protected]"; 
    tabOneImage = @"[email protected]"; 
    tabTwoImage = @"[email protected]"; 
} 
else { 
    tabOneImageSelected = @"home_icon_selected.png"; 
    tabTwoImageSelected = @"fav_icon_selected.png"; 
    tabOneImage = @"home_icon.png"; 
    tabTwoImage = @"fav_icon.png"; 
} 


[tabBarItem1 setFinishedSelectedImage:[UIImage imageNamed:tabOneImageSelected] 
      withFinishedUnselectedImage:[UIImage imageNamed:tabOneImage]]; 
[tabBarItem2 setFinishedSelectedImage:[UIImage imageNamed:tabTwoImageSelected] 
      withFinishedUnselectedImage:[UIImage imageNamed:tabTwoImage]];