我试图改变标签栏项目图像的颜色绘制灰度图像,这个我使用下面的代码:的iOS标签栏自定义项目图像,标签栏左侧
// Generate a tinted unselected image based on image passed via the storyboard.
for (UIViewController *vc in tabBarController.viewControllers) {
UITabBarItem *item = vc.tabBarItem;
UIImage *image = item.image;
UIImage *imageSel = [image imageWithColor:selectedColor];
UIImage *imageUnsel = [image imageWithColor:unselectedColor];
// Next is not working to set unselected image!
// But setFinishedSelectedImage does.
//item.selectedImage = imageSel;
item.image = imageSel;
//[item setFinishedSelectedImage:imageSel withFinishedUnselectedImage:imageUnsel];
}
UITabBarItem *item = tabBarController.moreNavigationController.tabBarItem;
UIImage *image = [UIImage imageNamed:@"menu-more"];
UIImage *imageSel = [image imageWithColor:selectedColor];
UIImage *imageUnsel = [image imageWithColor:unselectedColor];
item.image = imageSel;
// [item setFinishedSelectedImage:imageSel withFinishedUnselectedImage:imageUnsel];
imageWithColor:是的UIImage扩展使用原始图像的alpha值生成具有颜色的图像。
代码首次执行,一切都很好。
更改颜色(调用上面的代码)后,所有标签栏项目都显示在标签栏左侧的文本中。在模拟器和设备(iPhone + iPad)中都会发生。这是一个错误?
这只会改变所选项目的颜色,但未选中的项目将显示为灰色。已经尝试过。 – Borzh
我可以知道你使用tabbaritem图像的选定和未选择的颜色。 – Rajesh
是的,两者,实际上未选中的颜色与选定的颜色相同,但只有0.5的alpha。 – Borzh