我想将标签栏项目更改为选定时的粉红色,而不是默认的蓝色。
如何使用Xcode6中的故事板编辑器实现这一点?
以下是我当前不起作用的设置,蓝色背景起作用,但粉色不起作用:
将此代码放在要更改颜色的视图控制器的ViewDidLoad中
[[UITabBar appearance] setSelectedImageTintColor:[UIColor whiteColor]];
您可以将UITabBarController子类化,并在故事板中用它替换一个。 在__中,子类的ABC0实现调用此:
UITabBarController
[self.tabBar setTintColor:[UIColor greenColor]];
不知何故,我们无法单独使用故事板更改标签栏所选项目的色调颜色,因此我在我的ViewDidLoad中添加了以下代码,希望这对您有所帮助。
[[UITabBar appearance] setTintColor:[UIColor whiteColor]];
从故事板添加名为“ tintColor ”的运行时颜色属性。这是工作(适用于Xcode 8及更高版本)。
如果您想要未选定的颜色..您也可以添加unselectedItemTintColor。
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值。
您还可以通过关键点路径设置选定图像栏的色调:
希望这对你有帮助!谢谢
这是Swift 3中的解决方案,适用于IOS 10:
首先,创建自己的标签栏控制器子类,并将其添加到故事板中的标签控制器。然后,在viewDidLoad()方法中,您可以自定义选项卡栏。这里需要说明的是,tabBar的tintColor属性表示所选项目的颜色,而不是未选项目的颜色。为了更改未选择项目的颜色,我建议循环通过每个项目并使用图像的原始颜色,这样它们就不会自动呈现为灰色。
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,它工作得很好。
Xcode8
ImageTint
结果:
Xcode 8.2,IOS 10,Swift 3:现在tabBar有一个unselectedItemTintColor属性:
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及更高版本。
Swift 3|Xcode 10
如果要使所有选项卡栏项使用相同的颜色(选定&;未选择)..
步骤1
确保您的图像资产设置为呈现为=模板图像。这允许它们继承颜色。
步骤2
使用序列图像板编辑器更改选项卡栏设置,如下所示:
第3步
步骤1&;2将更改所选图标的颜色。如果仍要更改未选定项的颜色,则需要在代码中执行此操作。我还没有找到通过故事板编辑器来做这件事的方法。
创建自定义标签栏控制器类..
// TabBarController.swift class TabBarController: UITabBarController { override func viewDidLoad() { super.viewDidLoad() // make unselected icons white self.tabBar.unselectedItemTintColor = UIColor.white } }
...并将自定义类指定给选项卡栏场景控制器。
如果您知道如何通过故事板编辑器更改未选择的图标颜色,请让我知道。谢谢!
你可以通过故事板改变UITabbarItem的颜色,但如果你想通过代码改变颜色,这很容易:
//用于更改所选条的颜色
[[UITabBar appearance] setTintColor:[UIColor blueColor]];
//此用于更改未选中栏(IOS 10)
[[UITabBar appearance] setUnselectedItemTintColor:[UIColor yellowColor]];
//此行用于更改所有选项卡栏的颜色
[[UITabBar appearance] setBarTintColor:[UIColor whiteColor]];
将此代码添加到您的应用程序委托中-_是否完成_使用_选项函数启动_
UITabBar.appearance().tintColor = UIColor( red: CGFloat(255/255.0), green: CGFloat(99/255.0), blue: CGFloat(95/255.0), alpha: CGFloat(1.0) )
将所需颜色的RGB
最好的方法是在故事板中更改Image Tint
Image Tint
故事板中的图像色彩对我有用。