我有一个带有5个标签的标签栏。我为selected
的{{1}}和unselected
状态添加了不同的图像。
无论我做什么,色调颜色都不会改变,也不会调整图像颜色。
选择标签后,颜色应为黑色,未选中时,颜色应为橙色。
以下是分配了图像的属性检查器的图像。
标签栏的图片
如何更改图像颜色?
答案 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
}