从默认蓝色更改标签栏图标颜色

时间:2011-04-26 09:39:44

标签: objective-c xcode

我试图将标签栏图标颜色从默认蓝色更改为红色...我收到此错误 “Stray'\ 342'在程序中”..我得到的错误是“ - (void)recolorItemsWithColor:.......”而且在执​​行部分...无论如何都要解决错误...有没有其他方法可以将标签栏图标从默认蓝色更改为其他颜色

@interface UITabBar (ColorExtensions)

– (void)recolorItemsWithColor:(UIColor *)color shadowColor:(UIColor *)shadowColor shadowOffset:(CGSize)shadowOffset shadowBlur:(CGFloat)shadowBlur;

@end

4 个答案:

答案 0 :(得分:5)

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

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

它是tabBarItem的属性,你可以将默认的蓝色图像更改为自定义图像。 campaigns_hover.png是选定的自定义图片AND campaigns.png是未选中的自定义图片...

享受秘密.. :)

它不使用私有API ..该函数在UITabBarItem.h类下定义。

答案 1 :(得分:2)

转到资产文件夹,找到资产并单击Identity Inspector,然后更改"渲染为"到原始图像(假设您的图标是您想要的颜色)

enter image description here

答案 2 :(得分:1)

您是否知道您尝试使用的代码使用私有API,从而导致您的应用被拒绝?

我不知道您所看到的具体错误。但是,如果您正在寻找另一种可以进入App Store的解决方案,您可以尝试PESTabBarAdditions

答案 3 :(得分:1)

尝试将49x49 png图像添加到项目中,然后将这些代码行粘贴到applicationDidFinishLaunching内的app委托中,然后再添加子视图。

CGRect frame = CGRectMake(0, 0, 480, 49);
UIView *view = [[UIView alloc] initWithFrame:frame];
UIImage *tabBarBackgroundImage = [UIImage imageNamed:@"49x49.png"];
UIColor *color = [[UIColor alloc] initWithPatternImage:tabBarBackgroundImage];

[view setBackgroundColor:color];
[color release];
[[tabcontroller tabBar] insertSubview:view atIndex:0];
[view release];

希望它会有所帮助。