这个问题折磨我四个小时将近 唉。。。
以后一定要注意苹果官方文档
@implementation UITabBarItem (Universal)
+ (instancetype)itemWithTitle:(NSString *)title image:(UIImage *)image selectedImage:(UIImage *)selectedImage
{
UITabBarItem *tabBarItem = nil;
if ([[UIDevicecurrentDevice]systemVersion].floatValue >=7) {
image = [imageimageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; //这两个地方一定要加上
selectedImage = [selectedImageimageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
tabBarItem = [[UITabBarItem alloc] initWithTitle:title image:imageselectedImage:selectedImage];
} else {
tabBarItem = [[UITabBarItem alloc] init];
[tabBarItem setFinishedSelectedImage:selectedImagewithFinishedUnselectedImage:image];
}
return tabBarItem;
}
@end
.....
[[self.tabBarControllertabBar] setBackgroundImage:[UIImageimageNamed:@"dhbj.png"]];
[[self.tabBarControllertabBar] setSelectionIndicatorImage:[UIImageimageNamed:@"dhbj_1.png"]];
使用举例 :
UIViewController *chargeController=[[[ChargingViewControlleralloc]init]autorelease];
chargeController.tabBarItem = [UITabBarItemitemWithTitle:nil image:[UIImage imageNamed:@"daohang_2.png"]selectedImage:[UIImage imageNamed:@"daohang_2_liang.png"]];
UINavigationController *chargeNav=[[[UINavigationControlleralloc]initWithRootViewController:chargeController]autorelease];
以前的这种写法废弃了:
for (UITabBarItem *tabItem in self.tabBarController.tabBar.items)
{
if (tabItem==[self.tabBarController.tabBar.items objectAtIndex:0])
{
[tabItem setFinishedSelectedImage:[UIImage imageNamed:@"daohang_1_liang.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"daohang_1"]];
}
else if (tabItem==[self.tabBarController.tabBar.items objectAtIndex:1])
{
[tabItem setFinishedSelectedImage:[UIImage imageNamed:@"daohang_2_liang.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"daohang_2"]];
}
else if (tabItem==[self.tabBarController.tabBar.items objectAtIndex:2])
{
[tabItem setFinishedSelectedImage:[UIImage imageNamed:@"daohang_3_liang.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"daohang_3"]];
}
else if (tabItem==[self.tabBarController.tabBar.items objectAtIndex:3])
{
[tabItem setFinishedSelectedImage:[UIImage imageNamed:@"daohang_4_liang.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"daohang_4"]];
}
}