如何更改UITabBarItem的背景颜色?我需要这样的东西:
(钱包下的颜色)
答案 0 :(得分:0)
添加图片
UITabBarController *tabController = (UITabBarController *)self.window.rootViewController;
//tab1
UIImage *selectedImage = [UIImage imageNamed:@"home-tab-selected"];
UIImage *unselectedImage = [UIImage imageNamed:@"home2-tab"];
MyTabBar *tabBar = (MyTabBar *)tabController.tabBar;
UITabBarItem *item1 = [tabBar.items objectAtIndex:0];
[item1 setFinishedSelectedImage:selectedImage withFinishedUnselectedImage:unselectedImage];
//tab2
selectedImage = [UIImage imageNamed:@"customers-tab-selected"];
unselectedImage = [UIImage imageNamed:@"customers-tab"];
UITabBarItem *item2 = [tabBar.items objectAtIndex:1];
[item2 setFinishedSelectedImage:selectedImage withFinishedUnselectedImage:unselectedImage];
//tab3
selectedImage = [UIImage imageNamed:@"maps-tab-selected"];
unselectedImage = [UIImage imageNamed:@"maps-tab"];
UITabBarItem *item3 = [tabBar.items objectAtIndex:2];
[item3 setFinishedSelectedImage:selectedImage withFinishedUnselectedImage:unselectedImage];
//tab4
selectedImage = [UIImage imageNamed:@"reports-tab-selected"];
unselectedImage = [UIImage imageNamed:@"reports-tab"];
UITabBarItem *item4 = [tabBar.items objectAtIndex:3];
[item4 setFinishedSelectedImage:selectedImage withFinishedUnselectedImage:unselectedImage];
//tab5
selectedImage = [UIImage imageNamed:@"orders-tab-selected"];
unselectedImage = [UIImage imageNamed:@"orders-tab"];
UITabBarItem *item5 = [tabBar.items objectAtIndex:4];
[item5 setFinishedSelectedImage:selectedImage withFinishedUnselectedImage:unselectedImage];
if ([tabBar respondsToSelector:@selector(setBackgroundImage:)])
{
// ios 5 code here
[tabBar setBackgroundImage:[UIImage imageNamed:@"tab-bg"]];
}
答案 1 :(得分:0)
查看UITabbarItem的外观代理,特别是方法-selectedImage
(doc)。
请注意,在iOS7中,大多数图像都是作为模板呈现的(我不知道在标签栏项目中)所以你应该指定它们的渲染模式。
这样的事情:
[[UIImage imageNamed:@"wallet"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
这些方法在iOS7上是安全的,如果您需要在较低目标上部署,最好检查它们是否可用或您的应用程序是否会崩溃。