更改UITabBarItem未选择的颜色色调 - 斯威夫特

Rya*_*yan 6 uicolor uitabbaritem uitabbar ios swift

很简单,我希望能够更改标签栏中未选定项目的颜色.

请参阅下面的"观看最多"对象大麦,可以使用默认颜色.

这是我试图实现的代码:

UITabBarItem.appearance().setTitleTextAttributes(NSDictionary(object: UIColor.greenColor(), forKey: NSFontAttributeName), forState: UIControlState.Normal)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但是,使用此代码不起作用.有谁知道如何在swift中实现这种效果?


Mal*_*loc 4

来自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
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我要求 iOS 仅在 UNSELECTED 状态下应用图像的原始颜色(白色、黄色、红色等),并在 SELECTED 状态下保留图像原样。

此外,您可能需要为选项卡栏添加色调,以便为 SELECTED 状态应用不同的颜色(而不是默认的 iOS 蓝色)。根据上面的屏幕截图,您正在为所选状态应用白色:

self.tabBar.tintColor = UIColor.whiteColor()
Run Code Online (Sandbox Code Playgroud)