2012-07-05 51 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]];