gpt4 book ai didi

ios - Tab Bar Controller 中 TabBar 项目的不同颜色

转载 作者:行者123 更新时间:2023-11-28 12:27:24 25 4
gpt4 key购买 nike

我有几个选项卡的选项卡栏 Controller 。

  • 所有选项卡项的图像和文本应具有相同的未选定颜色。

  • 所有选项卡项目都应该有不同的图像选择颜色和文本。

我已准备好使用选定和未选定项目所需的颜色创建图像。我知道如何从 AppDelegate 更改所有选项卡的颜色

    UITabBar.appearance().tintColor = UIColorFromRGB(rgbValue: MY_COLOR, aplhaValue: 1.0)
UITabBarItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName: UIColorFromRGB(rgbValue: MY_COLOR, aplhaValue: 1.0)], for: UIControlState.selected)
UITabBarItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.white], for: UIControlState.normal)

但我想为不同的项目制作不同的颜色。

最佳答案

在你的 Storyboard 中选择你的 TabBarController 并给它一个自定义类:TabBarController 在这个例子中:

enter image description here enter image description here

然后创建自定义 TabBarController 文件:

//  Copyright © 2017 Erick Vavretchek. All rights reserved.

import UIKit

class TabBarController: UITabBarController {

enum tabBarMenu: Int {
case home
case list
case settings
}

// MARK: UITabBarController

override func viewDidLoad() {

super.viewDidLoad()

guard let tabBarMenuItem = tabBarMenu(rawValue: 0) else { return }
setTintColor(forMenuItem: tabBarMenuItem)
}

override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {

guard
let menuItemSelected = tabBar.items?.index(of: item),
let tabBarMenuItem = tabBarMenu(rawValue: menuItemSelected)
else { return }

setTintColor(forMenuItem: tabBarMenuItem)
}

// MARK: Private

private func setTintColor(forMenuItem tabBarMenuItem: tabBarMenu) {
switch tabBarMenuItem {
case .home:
viewControllers?[tabBarMenuItem.rawValue].tabBarController?.tabBar.tintColor = UIColor.green
case .list:
viewControllers?[tabBarMenuItem.rawValue].tabBarController?.tabBar.tintColor = UIColor.red
case .settings:
viewControllers?[tabBarMenuItem.rawValue].tabBarController?.tabBar.tintColor = UIColor.red
}
}
}

同样重要的是,在您的 Assets.xcassets 文件夹中,您选择用于 TabBarItem 的每个图像并将它们设置为 Render As: Template Image。这就是您可以简单地将其 tintColor 更改为您喜欢的任何内容的方法:

enter image description here

关于ios - Tab Bar Controller 中 TabBar 项目的不同颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43002013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com