如何实现iOS5 / 6的iOS 7标签栏图标设计

时间:2013-08-29 06:24:12

标签: ios uitabbaritem

我希望我的App for iOS5 / 6的标签栏看起来就像在iOS7上而不使用Xcode 5.是否可以删除此光泽/阴影效果?我尝试了着名的-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外观,具有光泽效果..

enter image description here

或带有阴影效果..

enter image description here

我试图在iOS5 / 6上删除UITabBarItem的光泽效果/阴影。当我点击一个特定的图标时,将出现蓝色的图标,当我离开时(在未选择的图标中)它将变为灰色,当屏幕加载/出现时,必须从开始出现的原始图像。但不知何故,我把这些设置与有光泽的设置..

enter image description here

enter image description here

或带阴影的这些......

enter image description here

enter image description here

提前干杯!

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

同时检查此answer