更改故事板中的标签栏项目选定颜色

时间:2014-11-10 00:44:41

标签: ios xcode xcode6 uitabbar uitabbaritem

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

如何使用Xcode 6中的storyboard编辑器完成此操作?

以下是我当前的设置无法正常工作,蓝色背景有效,但粉红色不起作用:

enter image description here

15 个答案:

答案 0 :(得分:371)

从StoryBoard添加名为“tintColor”的运行时颜色属性。这是有效的(用于Xcode 8及以上)。

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

setting tintColor as Runtime Attribute

答案 1 :(得分:149)

这个优雅的解决方案适用于 SWIFT 3.0 SWIFT 4.0

在故事板上:

  1. 选择标签栏
  2. 为标签栏上所选图标的所需颜色设置名为 tintColor 运行时属性
  3. 设置名为 unselectedItemTintColor Runtime Attibute ,以获取标签栏上未选中图标的所需颜色
  4. enter image description here

    编辑:使用Xcode 8测试,适用于iOS 10及更高版本。

答案 2 :(得分:58)

在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值。

答案 3 :(得分:42)

Xcode8我已经从故事板中更改了ImageTint并且效果很好。

enter image description here

结果:

enter image description here

答案 4 :(得分:15)

斯威夫特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

如果您想通过故事板编辑器弄清楚如何更改未选择的图标颜色,请告诉我。谢谢!

答案 5 :(得分:9)

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

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

答案 6 :(得分:7)

您还可以按键路径设置所选图像条色调颜色:

enter image description here

希望这会对你有所帮助!!感谢

答案 7 :(得分:7)

XCode 8.2,iOS 10,Swift 3:现在unselectedItemTintColor有一个tabBar属性:

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

答案 8 :(得分:6)

您可以通过故事板更改颜色UITabBarItem,但如果您想通过代码更改颜色,则非常简单:

//使用此选项来更改所选栏的颜色

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

//这用于更改未选中的栏(iOS 10)

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

//此行用于更改所有标签栏的颜色

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

答案 9 :(得分:5)

不知怎的,我们无法单独使用故事板更改Tab Bar选择的项目Tint颜色,因此我在ViewDidLoad中添加了以下代码,希望这会有所帮助。

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

答案 10 :(得分:5)

在您的app delegate -did_finish_launching_with_options函数中添加此代码

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

放置所需颜色的RGB

答案 11 :(得分:4)

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

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

tabBar

此方法的唯一缺点是您的商品图片必须已经具有您想要的所需颜色。

答案 12 :(得分:3)

最好的方法是在情节提要中更改Image Tint

答案 13 :(得分:2)

您可以继承UITabBarController,并在故事板中替换它。 在你的viewDidLoad子类实现中,请调用:

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

答案 14 :(得分:0)

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

enter image description here