2012-12-21 89 views
16

我新手iPhone開發設置的自定義圖像iphone標籤欄圖標,我需要把自定義圖像圖標標籤欄。但它顯示(黑色&藍色)。幫助只有默認顏色我從這個bug中克服了朋友......?如何用故事板

+0

嘗試編碼UIImage – GaneshKumar

回答

21

添加圖像中應用,

和見所附圖片

enter image description here

+0

所選圖像不工作呢搜索準確..我從識別檢查嘗試和屬性檢查器中的Xcode> 6.1 – iosMentalist

6

使用此代碼viewDidLoad中

UIImage *selectedImage0 = [UIImage imageNamed:@"selected.png"]; 
UIImage *unselectedImage0 = [UIImage imageNamed:@"unselected.png"]; 

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

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

從哪裏得到'tabBar'變量? – Siddharth

+3

現在,此方法已被棄用。 –

+0

@SalehMasum謝謝你的關注。如果你知道解決方案,請編輯我的答案。我會接受的。 – CRDave

2

如果你想自定義圖像(圖標和背景)添加到標籤欄,而不僅僅是改變藍色圖標:

添加下面的代碼你的第一個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頁的詳細信息。

4

以下代碼使用在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控制器委託方法

- (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"]; 

} 



} 
+0

非常感謝你的傢伙我是爲這個非常感謝+1 – ashokdy

4

您可以使用此代碼段爲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]; 

您可以繼續添加更多的項目,如果你有更多的標籤。 *不要忘記將圖像添加到您的項目 *這是通過編程完成的,而不是使用故事板