更改情节提要中选项卡栏项目的选定颜色

我想将标签栏项目更改为选定时的粉红色,而不是默认的蓝色。

如何使用Xcode6中的故事板编辑器实现这一点?

以下是我当前不起作用的设置,蓝色背景起作用,但粉色不起作用:

enter image description here

188810 次浏览

将此代码放在要更改颜色的视图控制器的ViewDidLoad中

[[UITabBar appearance] setSelectedImageTintColor:[UIColor whiteColor]];

您可以将UITabBarController子类化,并在故事板中用它替换一个。 在__中,子类的ABC0实现调用此:

[self.tabBar setTintColor:[UIColor greenColor]];

不知何故,我们无法单独使用故事板更改标签栏所选项目的色调颜色,因此我在我的ViewDidLoad中添加了以下代码,希望这对您有所帮助。

[[UITabBar appearance] setTintColor:[UIColor whiteColor]];

从故事板添加名为“ tintColor ”的运行时颜色属性。这是工作(适用于Xcode 8及更高版本)。

如果您想要未选定的颜色..您也可以添加unselectedItemTintColor

setting tintColor as Runtime Attribute

在Swift中,使用Xcode 7(及更高版本),您可以将以下内容添加到AppDelegate.swift文件中:

UITabBar.appearance().tintColor = UIColor(red: 255/255.0, green: 255/255.0, blue: 255/255.0, alpha: 1.0)

以下是完整方法的外观:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {


// I added this line
UITabBar.appearance().tintColor = UIColor(red: 255/255.0, green: 255/255.0, blue: 255/255.0, alpha: 1.0)


return true
}

在上面的例子中,我的项目将是白色的。“/255.0 ”是必需的,因为它需要一个从0到1的值。对于白色,我可以只使用1。但对于其他颜色,您可能会使用RGB值。

您还可以通过关键点路径设置选定图像栏的色调:

enter image description here

希望这对你有帮助!谢谢

这是Swift 3中的解决方案,适用于IOS 10:

首先,创建自己的标签栏控制器子类,并将其添加到故事板中的标签控制器。然后,在viewDidLoad()方法中,您可以自定义选项卡栏。这里需要说明的是,tabBartintColor属性表示所选项目的颜色,而不是未选项目的颜色。为了更改未选择项目的颜色,我建议循环通过每个项目并使用图像的原始颜色,这样它们就不会自动呈现为灰色。

class CustomTabBarVC: UITabBarController
{
override func viewDidLoad()
{
super.viewDidLoad()


self.tabBar.tintColor = AppColor.normalRed
self.tabBar.barTintColor = .white
self.tabBar.isTranslucent = true


if let items = self.tabBar.items
{
for item in items
{
if let image = item.image
{
item.image = image.withRenderingMode( .alwaysOriginal )
}
}
}
}
}

这种方法的唯一缺点是,您的项目图像必须已经具有您想要的颜色。

Xcode8上,我更改了故事板中的ImageTint,它工作得很好。

enter image description here

结果:

enter image description here

Xcode 8.2,IOS 10,Swift 3:现在tabBar有一个unselectedItemTintColor属性:

self.tabBar.unselectedItemTintColor = UIColor(red: 0/255.0, green: 200/255.0, blue: 0/255.0, alpha: 1.0)

这款出色的解决方案非常适合Swift 3.0SWIFT 4.2SWIFT 5.1

在故事板上:

  1. 选择标签栏
  2. 在标签栏上为所选图标的所需颜色设置称为色调运行时属性
  3. 在标签栏上为取消选择图标的所需颜色设置称为取消选择EditEmtIntColor运行时属性

enter image description here

编辑:工作与Xcode 8/10,适用于IOS 10/12及更高版本

Swift 3|Xcode 10

如果要使所有选项卡栏项使用相同的颜色(选定&;未选择)..


步骤1

确保您的图像资产设置为呈现为=模板图像。这允许它们继承颜色。

Xcode Assets


步骤2

使用序列图像板编辑器更改选项卡栏设置,如下所示:

  • 标签栏:图像色调设置为希望所选图标继承的颜色。
  • 标签栏:条形色调设置为所需的选项卡栏颜色。
  • 视图:色调设置为您希望在故事板编辑器中看到的颜色,这不会影响应用程序运行时的图标颜色。

Xcode Storyboard Editor


第3步

步骤1&;2将更改所选图标的颜色。如果仍要更改未选定项的颜色,则需要在代码中执行此操作。我还没有找到通过故事板编辑器来做这件事的方法。

创建自定义标签栏控制器类..

//  TabBarController.swift


class TabBarController: UITabBarController {


override func viewDidLoad() {
super.viewDidLoad()


// make unselected icons white
self.tabBar.unselectedItemTintColor = UIColor.white
}
}

...并将自定义类指定给选项卡栏场景控制器。

Xcode Storyboard Editor


如果您知道如何通过故事板编辑器更改未选择的图标颜色,请让我知道。谢谢!

你可以通过故事板改变UITabbarItem的颜色,但如果你想通过代码改变颜色,这很容易:

//用于更改所选条的颜色

   [[UITabBar appearance] setTintColor:[UIColor blueColor]];

//此用于更改未选中栏(IOS 10)

   [[UITabBar appearance] setUnselectedItemTintColor:[UIColor yellowColor]];

//此行用于更改所有选项卡栏的颜色

   [[UITabBar appearance] setBarTintColor:[UIColor whiteColor]];

将此代码添加到您的应用程序委托中-_是否完成_使用_选项函数启动_

UITabBar.appearance().tintColor = UIColor( red: CGFloat(255/255.0), green: CGFloat(99/255.0), blue: CGFloat(95/255.0), alpha: CGFloat(1.0) )

将所需颜色的RGB

最好的方法是在故事板中更改Image Tint

enter image description here

故事板中的图像色彩对我有用。

enter image description here