从UITabBarItem类文档:
默认情况下,实际未选中和选中的图像为
根据源图像中的Alpha值自动创建.至
防止系统着色,为图像提供
UIImageRenderingModeAlwaysOriginal.
关键不在于是否使用UIImageRenderingModeAlwaysOriginal,重要的是何时使用它.
要防止未选中项目的灰色,只需防止未选中图像的系统着色.以下是如何做到这一点:
var firstViewController:UIViewController = UIViewController()
// The following statement is what you need
var customTabBarItem:UITabBarItem = UITabBarItem(title: nil, image: UIImage(named: "YOUR_IMAGE_NAME")?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal), selectedImage: UIImage(named: "YOUR_IMAGE_NAME"))
firstViewController.tabBarItem = customTabBarItem
如您所见,我要求iOS仅将图像的原始 colored颜色 (白色、黄色、红色等)应用于未选中的状态,并将图像保留为选中状态.
此外,您可能需要为选项卡栏添加色调,以便为选定状态应用不同的 colored颜色 (而不是默认的iOS蓝色).根据上面的屏幕截图,您正在为所选状态应用白色:
self.tabBar.tintColor = UIColor.whiteColor()
编辑: