Ios 更改序列图像板中选项卡栏项目的选定颜色

Ios 更改序列图像板中选项卡栏项目的选定颜色,ios,xcode,xcode6,uitabbar,uitabbaritem,Ios,Xcode,Xcode6,Uitabbar,Uitabbaritem,选择时,我想将选项卡栏项目更改为粉红色,而不是默认的蓝色 如何使用Xcode 6中的情节提要编辑器实现这一点 以下是我当前的设置,它不起作用,蓝色背景起作用,但粉色不起作用: 将此代码放入要更改其颜色的视图控制器的viewDidLoad中 [[UITabBar appearance] setSelectedImageTintColor:[UIColor whiteColor]]; 您可以将UITabBarController子类化,并在情节提要中用它替换它。 在子类的viewDidLoad实现

选择时,我想将选项卡栏项目更改为粉红色,而不是默认的蓝色

如何使用Xcode 6中的情节提要编辑器实现这一点

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


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

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

您可以将
UITabBarController
子类化,并在情节提要中用它替换它。 在子类的
viewDidLoad
实现中,调用以下命令:

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

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

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

从情节提要中添加名为“tintColor”的运行时颜色属性。这是可行的(对于Xcode 8和更高版本

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

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

您还可以按关键点路径设置选定的图像栏着色颜色:


希望这对你有帮助!!谢谢

这是在iOS 10中运行的Swift 3解决方案:

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

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
,效果很好

结果是:


XCode 8.2,iOS 10,Swift 3:现在有一个
未选择的EditemTintColor
属性用于
选项卡

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上非常有效:

在故事板上:

  • 选择选项卡栏
  • 为选项卡栏上所选图标的所需颜色设置名为tintColor的运行时属性
  • 为选项卡栏上的未选定图标的所需颜色设置一个名为未选定EditemTintColor的运行时属性

  • 编辑:使用Xcode 8/10工作,适用于iOS 10/12及以上版本

    如果希望使所有选项卡栏项目具有相同的颜色(选中和未选中)


    步骤1

    确保已将图像资源设置为渲染为=模板图像。这允许它们继承颜色


    步骤2

    使用情节提要编辑器更改选项卡栏设置,如下所示:

    • 将“选项卡栏:图像着色”设置为所选图标要继承的颜色
    • 将“选项卡栏:栏着色”设置为您希望选项卡栏的颜色
    • 将“视图:着色”设置为希望在情节提要编辑器中看到的颜色,这不会影响应用程序运行时的图标颜色


    步骤3

    步骤1和2将更改所选图标的颜色。如果仍要更改未选中项目的颜色,则需要在代码中进行更改。我还没有找到一种通过故事板编辑器实现的方法

    创建自定义选项卡栏控制器类

    //  TabBarController.swift
    
    class TabBarController: UITabBarController {
    
        override func viewDidLoad() {
            super.viewDidLoad()
    
            // make unselected icons white
            self.tabBar.unselectedItemTintColor = UIColor.white
        }
    }
    
    。。。并将自定义类指定给选项卡栏场景控制器



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

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

    //使用此选项可更改选定条的颜色

       [[UITabBar appearance] setTintColor:[UIColor blueColor]];
    
    //此更改适用于未选择的栏(iOS 10)

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

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

    将此代码添加到您的应用程序代理中-是否使用\u选项功能完成\u启动\u

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

    将所需颜色的RGB设置为

    此最佳方法是更改故事板中的图像色调


    所有选项卡都无法更改吗?只需将颜色相同的代码放在所有选项卡的视图中。您可以在制作UITAB控制器后立即使用此代码,它会在选择时为所有选项卡项设置您提到的颜色。没有这种方法SetSelectedImageTintColor可能重复!检查此答案,它将帮助您找到解决方案:获取:
    'UITabBar'没有名为'setSelectedImageTintColor'的成员。
    而且我正在使用swift,因此我输入:
    self.tabBar.setSelectedImageTintColor=UIColor.greenColor
    不确定这是否正确not@Deekor它是
    tintColor
    不是
    selectedImageTintColor
    ,顺便说一句,iOS 8中不推荐使用
    selectedImageTintColor
    。当我将此属性添加到uitabaritem而不是UITabBar时,它对我起到了作用。但是如何在故事板中设置未选择的选项卡栏项颜色?非常适合我的情况-我需要我的五个选项卡栏项在选择时是唯一的颜色。我能够在连接到我的选项卡栏的
    UINavigationController
    上的
    uitabaritem
    上设置此运行时属性,它工作正常。所有这些都不需要编写任何代码,这很好,因为我正在重用VC c
    UITabBar.appearance().tintColor = UIColor( red: CGFloat(255/255.0), green: CGFloat(99/255.0), blue: CGFloat(95/255.0), alpha: CGFloat(1.0) )