UIAppearence 仅适用于 iOS 中的系统颜色?

Posted

技术标签:

【中文标题】UIAppearence 仅适用于 iOS 中的系统颜色?【英文标题】:UIAppearence only working with system colors in iOS? 【发布时间】:2014-07-10 14:20:28 【问题描述】:

我正在尝试使用 UIAppearance 更改应用中导航栏的颜色。

但只有当我使用系统颜色时,它才有效:

    UINavigationBar *navigationBarAppearance = [UINavigationBar appearance];

    [navigationBarAppearance setBarTintColor:[[UIColor alloc] initWithRed:220.0f green:47.0f blue:40.0f alpha:100.0f]]; // does not work

    [navigationBarAppearance setBarTintColor:[UIColor colorWithRed:220.0f green:47.0f blue:40.0f alpha:100.0f]]; // does not work

    [navigationBarAppearance setBarTintColor:[UIColor redColor]]; // works

有什么建议吗?

【问题讨论】:

您应该阅读过UIColor 的文档。您使用的方法接受 0.0 和 1.0 之间的值,而不是 0.0 和 255.0。 @duci9y 你是对的。不幸的是,您确实发布了评论而不是答案,所以我不得不接受 Fry 的回答,尽管他发布的时间比您晚。 【参考方案1】:

方法

colorWithRed:green:blue:alpha:

接受0.01.0 之间的四个值。因此,如果您有从 0.0255.0 的组件,则需要通过除以 255.0f 进行规范化。

[UIColor alloc] initWithRed:220.0f/255.0f green:47.0f/255.0f blue:40.0f/255.0f alpha:100.0f/255.0f]

【讨论】:

【参考方案2】:

我认为你在自定义颜色方法上做错了,就像这样

[[UINavigationBar appearance] setBarTintColor:[UIColor colorWithRed:127.0f/255.0f green:127.0f/255.0f blue:127.0f/255.0f alpha:1.0f]];

【讨论】:

以上是关于UIAppearence 仅适用于 iOS 中的系统颜色?的主要内容,如果未能解决你的问题,请参考以下文章

XCUIApplication 仅适用于 iOS 9.0 或更新版本,swift3

iOS:didSelectRowAt 索引路径仅适用于第二次点击

如何限制 UIScrollViewDelegate 仅适用于 UIViewController 中的一个视图

centerXAnchor 仅适用于 iOS 9.0 或更高版本?

JSON仅适用于Debug模式,但不适用于android中的apk文件

如何修复 - safeAreaLayoutGuide' 仅适用于 iOS 11.0 或更高版本