0

我希望不使用 Xcode 5 的情况下,我的 iOS5/6 应用程序的标签栏看起来就像在 iOS7 上一样。是否可以删除这种光泽/阴影效果?我尝试了著名的-setFinishedSelectedImage:withFinishedUnselectedImage:代码解决方案。但似乎不适用于我的情况。我玩弄了这些代码:

UIImage* icon1 = [UIImage imageNamed:@"discover_dg~iphone.png"];
UIImage* icon2 = [UIImage imageNamed:@"discover_lb~iphone.png"];

//UITabBarItem *updatesItem = [[UITabBarItem alloc] initWithTitle:@"Discover" image:icon1 tag:1];

UITabBar *tabBar = self.tabBarController.tabBar;
UITabBarItem *updatesItem = [tabBar.items objectAtIndex:1];
updatesItem.image = icon1;


[updatesItem setFinishedSelectedImage:icon2 withFinishedUnselectedImage:icon1];

[self.navigationController setTabBarItem:updatesItem];

屏幕加载时的第一个标签栏图标具有 iOS6 的外观,具有光泽效果。

在此处输入图像描述

或者这个有阴影效果..

在此处输入图像描述

我正在尝试在 iOS5/6 上删除 UITabBarItem 的光泽效果/阴影。当我点击一个特定的图标时,会出现蓝色的图标,当我离开时(在未选择的图标中)它会变成灰色,必须从一开始的原始图像已经在屏幕加载/出现时出现。但不知何故,我把这些和有光泽的放在一起……

在此处输入图像描述

在此处输入图像描述

或者这些有阴影的..

在此处输入图像描述

在此处输入图像描述

提前干杯!

4

2 回答 2

2

http://www.appcoda.com/ios-programming-how-to-customize-tab-bar-background-appearance/ 这是最好的解决方案。使用故事板。您只需将相同的代码带到 AppDelegare.m 祝你好运给你!</p>

于 2013-10-02T10:14:45.670 回答
1

你可以使用appereance协议,在iOS7中主要是使用新功能,但从iOS5的appereance方法可以做到这一点。
您只需将标签栏的背景(-setBackgroundImage:图像和视图控制器的每个 UItabbarItem 从选中状态更改为未选中状态(-setFinishedSelectedImage:withFinishedUnselectedImage:)。
如果您不需要为每个 VC 应用不同的图像,还有一个 tint 属性。在此处查看文档

还要检查这个答案

于 2013-08-29T06:53:33.713 回答