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