当我更改 UITabBar 的颜色时,它只显示为灰色

Posted

技术标签:

【中文标题】当我更改 UITabBar 的颜色时,它只显示为灰色【英文标题】:When I change the color of UITabBar it only shows up in gray 【发布时间】:2012-12-03 06:42:59 【问题描述】:

我在选项卡式应用的各种视图控制器的“viewDidLoad”中使用以下代码。

    UIColor *tabBarColor = [UIColor colorWithRed:85.1 green:57.6 blue:71.4 alpha:.5];
    [[UITabBar appearance] setTintColor:tabBarColor];

但是我得到的应该是粉红色的图像是这样的:

我可以通过更改 alpha 来使其更亮或更暗,但从不着色——只有黑色/白色/灰色。

有什么想法可以解决这个问题吗?

【问题讨论】:

参考***.com/questions/571028/… 用 setBackgroundColor 代替 setTintColor 属性 【参考方案1】:

在 .m 的头文件下写下这一行 #define RGB(r, g, b) [UIColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:1] 现在你要设置颜色的地方把这个代码设置为粉红色 [[UITabBar appearance] setTintColor:RGB(255, 192, 203)]; 就是这样

【讨论】:

【参考方案2】:

试试这个:

   if ([tabBarController.tabBar respondsToSelector:@selector(setTintColor:)]) 
    
        [tabBarController.tabBar setTintColor: tabBarColor];
    

【讨论】:

【参考方案3】:

颜色必须在数字后带有小数点:215.0/255。因为它是浮动的。 如果您想在 32 位和 64 位系统上精确使用浮点数和双精度数,您还应该在数字后添加 f215.0f/255。编译器会知道它是 32 位的。 现在你的问题是你没有写分界线:N_OF_COLORS / TOTAL_COLORS

【讨论】:

【参考方案4】:

UIColor *tabBarColor = [UIColor colorWithRed:85.1 green:57.6 blue:71.4 alpha:.5]

颜色必须在数字后带有小数点:215.0/255。因为它是浮动的。

试试这个:

UIColor *tabBarColor = [UIColor colorWithRed:(87/255.0) green:(153/255.0) blue:(165/255.0) alpha:1];


[[UITabBar appearance] setTintColor:tabBarColor];

【讨论】:

以上是关于当我更改 UITabBar 的颜色时,它只显示为灰色的主要内容,如果未能解决你的问题,请参考以下文章

快速更改UITabBar中“更多” UINavigationController的背景颜色

来自 UITabBar 的奇怪行为,其中背景颜色仅显示一个选项卡

UIAlertView 更改 UITabbar 项目选定的颜色

UITabBar 色调颜色不适用于图像

在 iOS 中导航期间更改 UITabBar

如何更改 UITabbar 选定的颜色?