iOS:为什么自定义选项卡栏项目仅显示为灰色轮廓?

iOS:为什么自定义选项卡栏项目仅显示为灰色轮廓?,ios,xcode,xcode6,uitabbarcontroller,uitabbar,Ios,Xcode,Xcode6,Uitabbarcontroller,Uitabbar,我正在尝试使用自定义的*.png文件(一个用于选定文件,一个用于未选定文件)设置UITabBarController的选项卡栏图标 所有图像均为非交错png格式,并在*.imageset中正确命名(@2x、@3x等) 但选项卡栏项目仅显示为如下轮廓: UIImage *selectedImage; UIImage *unselectedImage; // tab1 selectedImage = [UIImage imageNamed:@"cmdGamesActive"]; unselecte

我正在尝试使用自定义的*.png文件(一个用于选定文件,一个用于未选定文件)设置UITabBarController的选项卡栏图标

所有图像均为非交错png格式,并在*.imageset中正确命名(@2x、@3x等)

但选项卡栏项目仅显示为如下轮廓:

UIImage *selectedImage;
UIImage *unselectedImage;

// tab1
selectedImage = [UIImage imageNamed:@"cmdGamesActive"];
unselectedImage = [UIImage imageNamed:@"cmdGamesInactive"];
UITabBarItem *item1 = [self.tabBar.items objectAtIndex:0];
item1 = [item1 initWithTitle:@"Games" image:unselectedImage selectedImage:selectedImage];

// tab2
selectedImage = [UIImage imageNamed:@"cmdFriendsActive"];
unselectedImage = [UIImage imageNamed:@"cmdFriendsInactive"];
UITabBarItem *item2 = [self.tabBar.items objectAtIndex:1];
item2 = [item2 initWithTitle:@"Friends" image:unselectedImage selectedImage:selectedImage];

// tab3
selectedImage = [UIImage imageNamed:@"cmdTrophiesActive"];
unselectedImage = [UIImage imageNamed:@"cmdTrophiesInactive"];
UITabBarItem *item3 = [self.tabBar.items objectAtIndex:2];
item3 = [item3 initWithTitle:@"Trophies" image:unselectedImage selectedImage:selectedImage];

// tab4
selectedImage = [UIImage imageNamed:@"cmdSettingsActive"];
unselectedImage = [UIImage imageNamed:@"cmdSettingsInactive"];
UITabBarItem *item4 = [self.tabBar.items objectAtIndex:3];
item4 = [item4 initWithTitle:@"Settings" image:unselectedImage selectedImage:selectedImage];

我试图在Interface Builder中设置这些图像,但没有成功。然后,我还尝试在MyTabBarController(扩展UITabBarController)的“loadView”函数中以编程方式设置它们,如下所示:

UIImage *selectedImage;
UIImage *unselectedImage;

// tab1
selectedImage = [UIImage imageNamed:@"cmdGamesActive"];
unselectedImage = [UIImage imageNamed:@"cmdGamesInactive"];
UITabBarItem *item1 = [self.tabBar.items objectAtIndex:0];
item1 = [item1 initWithTitle:@"Games" image:unselectedImage selectedImage:selectedImage];

// tab2
selectedImage = [UIImage imageNamed:@"cmdFriendsActive"];
unselectedImage = [UIImage imageNamed:@"cmdFriendsInactive"];
UITabBarItem *item2 = [self.tabBar.items objectAtIndex:1];
item2 = [item2 initWithTitle:@"Friends" image:unselectedImage selectedImage:selectedImage];

// tab3
selectedImage = [UIImage imageNamed:@"cmdTrophiesActive"];
unselectedImage = [UIImage imageNamed:@"cmdTrophiesInactive"];
UITabBarItem *item3 = [self.tabBar.items objectAtIndex:2];
item3 = [item3 initWithTitle:@"Trophies" image:unselectedImage selectedImage:selectedImage];

// tab4
selectedImage = [UIImage imageNamed:@"cmdSettingsActive"];
unselectedImage = [UIImage imageNamed:@"cmdSettingsInactive"];
UITabBarItem *item4 = [self.tabBar.items objectAtIndex:3];
item4 = [item4 initWithTitle:@"Settings" image:unselectedImage selectedImage:selectedImage];
。。。同样的结果

如何解决这个问题有什么想法吗?

根据,我做了一些额外的事情,并在这里为您提供了答案。我有我的自定义UITabBarController,它在情节提要文件中与我的UITabBarController链接。因此,为了在未选中TabBar时删除iOS提供的自动着色,我最终以这种方式删除了它。这些图像可以是各种各样的图像,但只是在途中。下面是:

NSArray *navConArr = self.viewControllers;//self is custom UITabBarController
UINavigationController *naviOne = [navConArr objectAtIndex:0];//I have 3 different tabs, objectAtIndex:0 means the first tab navigation controller
UITabBarItem *naviBtn  = naviOne.tabBarItem;
UIImage *image = [[UIImage imageNamed:@"iconNaviOne"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
[naviBtn setSelectedImage:image];
[naviBtn setImage:image];

谢天谢地,这就像一个符咒(:

这应该可以做到:

UITabBarItem *item0 = [_tabBar.items objectAtIndex:0];
item0.image  = [[UIImage imageNamed:@"edit_profile_tab"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
item0.selectedImage  = [[UIImage imageNamed:@"edit_profile_tab_active"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

我也面临着类似的问题。 我为我的标签选择了几个图标,如“麦克风”、“笑脸”和“设置”

但当我执行程序时,唯一能看到的东西是灰色和蓝色的方块

我修改了我的“.png”图像,使之透明,现在它们可以像预期的那样可见


i、 e,确保用于选项卡图标的图像没有背景。

完成图像名称,最后尝试添加.png。@Samraan Khaan:谢谢,但这没有帮助。有趣的是,它与另一个仅具有透明度和一些白色的图像一起工作。但我的图标非常丰富多彩……还有其他想法吗?@CookieMensta:看起来不错就像新的iOS SDK不可能那样…只支持在选中时着色的黑白图像。啊,嘘!感谢您的更新:)@cookiemonsta:查看此线程。它描述了选项卡栏项的一个非常类似的问题。