TabBar项目色调颜色不会改变

时间:2015-10-16 19:20:38

标签: ios objective-c uitabbaritem

我有一个带有5个标签的标签栏。我为selected的{​​{1}}和unselected状态添加了不同的图像。

无论我做什么,色调颜色都不会改变,也不会调整图像颜色。

选择标签后,颜色应为黑色,未选中时,颜色应为橙色。

以下是分配了图像的属性检查器的图像。

enter image description here

标签栏的图片

enter image description here

如何更改图像颜色?

3 个答案:

答案 0 :(得分:0)

问题是您无法控制未选择项目的色调颜色。这不是你的代码的错;这就是iOS的工作原理。这个使用是可能的,但在某些时候(iOS 7?不能记住)它就消失了。

因此,您在屏幕截图中发生的事情是,您已将选定的色调颜色设置为橙色,这就是结束。选择一个标签栏项目,并将其着色为橙色。

答案 1 :(得分:0)

其中一个解决方案是提供两组选项卡图标。有一个与你的情况非常相似的帖子,你可以看看它: Custom tab bar icon colors

我认为这段代码(Tunvir Rahman Tusher)很好地解释了:

UITabBarItem *tabBarItem1=[[tabBar items] objectAtIndex:0];//first tab bar
[tabBarItem1 setFinishedSelectedImage:[UIImage imageNamed:@"yourImageSelected.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"yourImageUnselected.png"]];//image should be 30 by 30

答案 2 :(得分:0)

如果您正在为IOS 10或更新版本进行开发,您可以更改未选择的色调颜色,在旧版本中,您只能更改选定的tintColor;这是一个实现:

1)转到appDelegate / application didFinishLaunchingWithOptions:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.

    //Check if rootViewController is TabBar
    if (window?.rootViewController as? UITabBarController) != nil {

        //Change unselected TintColor
        (window?.rootViewController as! UITabBarController).tabBar.tintColor = UIColor(red: 255/255, green: 102/255, blue: 0, alpha: 1.0)

        //If system has IOS 10 or newer
        if #available(iOS 10.0, *) {
            //Change Unselected Tint Color
            (window?.rootViewController as! UITabBarController).tabBar.unselectedItemTintColor = UIColor.black
        } else {
            // Fallback on earlier versions
        }

    }

    return true
}