2010-10-27 120 views

回答

-4

你可以改变图像做,但所选择的图像始终具有对图像应用相同的蓝色覆盖。我可以看到解决这个问题的唯一方法可能是继承UITabBarItem。

10

它可能没有添加任何subView。

在您定义的标签栏类设置 tabBarItem的属性 - >>

UITabBarItem *tabBarItem1 = [[self.tabBar.tabBar items] objectAtIndex:0]; 
[tabBarItem1 setFinishedSelectedImage:[UIImage imageNamed:@"campaigns_hover.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"campaigns.png"]]; 

其tabBarItem的属性和u可以默认的蓝色图像更改为自定义图像。 campaigns_hover.png是选定的自定义图像与 campaigns.png是自定义图像未选中时...

享受的秘密.. :)

+1

finishedSelectedImage:是因为iOS版7.使用过时的selectedImage属性。 – Daniel 2014-02-03 21:28:34

1

在iOS 6中我有改变,如选择Tabbaritem图像 -

在使用TabBar控制器的委托方法

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController 

{ 
    if([tabBarController selectedIndex] == 0) 
    { 
     [viewController.tabBarItem setFinishedSelectedImage:[UIImage imageNamed:@"selected.png"]withFinishedUnselectedImage:[UIImage imageNamed:@"unselect.png"]]; 
    }  
} 

通过这个你可以改变你的形象。

或者你可以在你的视图控制器直接用初始化(或viewWillAppear中)的方法,像

[viewController.tabBarItem setFinishedSelectedImage:[UIImage imageNamed:@"selected.png"]withFinishedUnselectedImage:[UIImage imageNamed:@"unselect.png"]]; 
+0

真棒代码,保持它 – user40910 2014-05-07 13:32:25