ChatGPT解决这个技术问题 Extra ChatGPT

在情节提要中更改选项卡栏项目选定的颜色

我想在选择时将我的标签栏项目更改为粉红色,而不是默认的蓝色。

我如何使用 Xcode 6 中的情节提要编辑器完成此操作?

这是我当前不起作用的设置,蓝色背景有效,但粉红色无效:

https://i.stack.imgur.com/9XeMZ.png

tab-bar-item-tint-color 可能重复!
检查此答案,它将帮助您解决问题:stackoverflow.com/a/58727092/7804300

M
Mehul Thakkar

从 StoryBoard 添加名为“tintColor”的运行时颜色属性。这是有效的(对于 Xcode 8 及更高版本)。

如果您想要未选择的颜色.. 您也可以添加 unselectedItemTintColor

https://i.stack.imgur.com/pXUay.png


当我将此属性添加到 UITabBarItem 而不是 UITabBar 时,它对我有用。
但是如何在情节提要中设置标签栏项目未选择的颜色?
非常适合我的情况 - 我需要我的五个 tabBar 项目在选择时是唯一的颜色。我能够在连接到我的 tabBar 的 UINavigationController 上的 UITabBarItem 上设置此运行时属性,它可以完美运行。所有这些都无需编写任何代码,这很棒,因为我正在重用一个 VC 类 3 次。谢谢!
相反 - 这是唯一适用于 iOS 10 的方法(来自属性面板的色调似乎不起作用,并且 uitabbaritem 的运行时属性“tintColor”也不起作用。
堆栈溢出 1:苹果 0
M
Marcelo Gracietti

这个优雅的解决方案在 SWIFT 3.0、SWIFT 4.2 和 SWIFT 5.1 上运行良好:

在故事板上:

选择您的选项卡栏 为选项卡栏上选定图标的所需颜色设置名为 tintColor 的运行时属性 为选项卡栏上未选定图标的所需颜色设置名为 unselectedItemTintColor 的运行时属性

https://i.stack.imgur.com/2YBT2.png

编辑:使用 Xcode 8/10,适用于 iOS 10/12 及更高版本。


非常感谢。 unselectedItemTintColor 发现非常罕见
'unselectedItemTintColor' 对我来说是完美的解决方案,谢谢。
如果部署目标是 8.0 或 9.0,这会起作用吗?我使用 swift 3.0 和 Xcode 8.0 进行开发
选择 Tab 栏很重要,对我来说确实在 Swift 4 中工作。
出色的!仍在使用 xCode 10 :) 不会刷新可视化编辑器,但一旦编译就可以工作:)
J
Jarrod

在 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 值。


似乎其他方法都不起作用(不再起作用。)这行得通!
@Jarrod 我在这个问题上玩了将近 1 小时,这个答案应该有更多的选票。谢谢!
F
Francisco Romero

Xcode8 上,我更改了情节提要中的 ImageTint,它运行良好。

https://i.stack.imgur.com/LJ9bb.png

结果:

https://i.stack.imgur.com/Q3ILk.png


使用自定义图像时,这对我有用
这应该是公认的答案。它不需要运行时属性,这意味着它适用于启动屏幕!
D
Derek Soike

斯威夫特 3 | Xcode 10

如果您想让所有标签栏项目的颜色相同(选中和未选中)...

步骤1

确保您的图像资源设置为渲染为 = 模板图像。这允许他们继承颜色。

https://i.stack.imgur.com/jJt6J.png

第2步

使用情节提要编辑器更改标签栏设置,如下所示:

将选项卡栏:图像色调设置为您希望所选图标继承的颜色。

将 Tab Bar: Bar Tint 设置为您希望标签栏的颜色。

Set View: Tint 为您想在故事板编辑器中看到的颜色,这不会影响您的应用程序运行时的图标颜色。

https://i.stack.imgur.com/mkwX3.png

第 3 步

步骤 1 和 2 将更改所选图标的颜色。如果您仍想更改未选中项的颜色,则需要在代码中进行。我还没有找到通过情节提要编辑器来做到这一点的方法。

创建一个自定义标签栏控制器类...

//  TabBarController.swift

class TabBarController: UITabBarController {

    override func viewDidLoad() {
        super.viewDidLoad()

        // make unselected icons white
        self.tabBar.unselectedItemTintColor = UIColor.white
    }
}

...并将自定义类分配给您的标签栏场景控制器。

https://i.stack.imgur.com/QrfpL.png

如果您知道如何通过情节提要编辑器更改未选择的图标颜色,请告诉我。谢谢!


self.tabBar.unselectedItemTintColor = UIColor.white self.tabBar.tintColor = #colorLiteral(red: 0.2, green: 0.7333333333, blue: 0.3450980392, alpha: 1) 为我工作
A
Andy Weinstein

最好的方法是更改情节提要中的 Image Tint

https://i.stack.imgur.com/3zmRH.png


N
Nick

将此代码放在要更改颜色的视图控制器的 viewDidLoad 中

[[UITabBar appearance] setSelectedImageTintColor:[UIColor whiteColor]];

有没有办法改变所有的标签?
只需将具有相同颜色的代码放在视图中即可加载所有选项卡
您可以在制作 UITabController 后立即使用此代码,它将设置您在选择时为所有选项卡项提到的颜色。
没有这样的方法 setSelectedImageTintColor
A
Arvind Kumar

您还可以通过关键路径设置选定的图像栏色调颜色:

https://i.stack.imgur.com/WubCq.png

希望对你有帮助!!谢谢


在 iOS 9 中它不会改变未选择的颜色
这将如何帮助改变 UITabBar 图标的颜色?
L
Lajos Arpad

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)

G
Genevios

您可以通过情节提要更改颜色 UITabBarItem 但如果您想通过代码更改颜色很容易:

// 使用它来改变选中条的颜色

   [[UITabBar appearance] setTintColor:[UIColor blueColor]];

// 这用于更改未选中的栏 (iOS 10)

   [[UITabBar appearance] setUnselectedItemTintColor:[UIColor yellowColor]];

// 而这一行用于更改所有标签栏的颜色

   [[UITabBar appearance] setBarTintColor:[UIColor whiteColor]];

setUnselectedItemTintColor 仅适用于 iOS 10
s
skypirate

不知何故,我们无法单独使用情节提要更改选项卡栏所选项目的色调颜色,因此我在 ViewDidLoad 中添加了以下代码,希望这会有所帮助。

[[UITabBar appearance] setTintColor:[UIColor whiteColor]]; 

S
SHINTO JOSEPH

在您的应用委托 -did_finish_launching_with_options 函数中添加此代码

UITabBar.appearance().tintColor = UIColor( red: CGFloat(255/255.0), green: CGFloat(99/255.0), blue: CGFloat(95/255.0), alpha: CGFloat(1.0) )

把所需颜色的RGB


K
Krutika Sonawala

故事板中的图像色调对我有用。

https://i.stack.imgur.com/CC5Aa.png


a
arauter

这是适用于 iOS 10 的 Swift 3 中的解决方案:

首先,您创建自己的选项卡栏控制器子类并将其添加到情节提要中的选项卡控制器。然后,您可以在 viewDidLoad() 方法中自定义标签栏。这里需要说明的是,tabBartintColor属性代表的是选中项的颜色,而不是未选中项的颜色!为了更改未选中项目的颜色,我建议循环遍历每个项目并使用图像的原始颜色,因此它们不会自动呈现为灰色。

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 )
                }
            }
        }
    }
}

这种方法的唯一缺点是您的商品图像必须已经具有您想要的颜色。


复杂。 Jarrod 的答案适用于所有图标。
c
chancyWu

您可以将 UITabBarController 子类化,并在情节提要中用它替换它。在子类的 viewDidLoad 实现中调用:

[self.tabBar setTintColor:[UIColor greenColor]];

获得:'UITabBar' does not have a member named 'setSelectedImageTintColor'
我也在使用 swift,所以我输入:self.tabBar.setSelectedImageTintColor = UIColor.greenColor 不确定这是否正确
@Deekor 它是 tintColor 而不是 selectedImageTintColor,顺便说一句 selectedImageTintColor 在 iOS 8 中已弃用。