【问题标题】:Change default global tint color in swift快速更改默认全局色调颜色
【发布时间】:2014-09-25 12:39:45
【问题描述】:

我正在开发一个小应用程序,我想将默认的全局色调颜色从蓝色更改为橙​​色。我已经在 Objective-C 中看到了很多方法,但我似乎无法使用 swift 让它工作。我怎么能做到这一点?提前致谢!

【问题讨论】:

    标签: swift uitabbarcontroller ios8 xcode6


    【解决方案1】:

    来自 Apple here 的小更新。使用 Xcode 12.4 版测试。

    现在颜色资源目录中有一个AccentColor,可以在构建设置中进行设置。在较新的项目中默认设置,但较旧的项目可能需要手动添加。

    1. 创建名称为“AccentColor”(或任何您喜欢的名称)的颜色资源
    2. 转到目标的构建设置并添加颜色资源的名称作为条目“Global Accent Color Name”的值。

    请注意AccentColorasset-name 不是保留关键字,可以是任何自定义的,但构建设置是它起作用的原因。

    基本上,iOS 没有与 Android 相同的主题(2021 年),其中标准颜色有关键字,我们可以简单地在资产中设置这些关键字。

    【讨论】:

    • 实际的最佳解决方案。不知道这是什么东西,太神奇了。
    【解决方案2】:

    此答案上次针对 Swift 5.2 和 iOS 13.5 SDK 进行了修订。


    您可以在窗口上设置tintColor。由于 tint color 会向下级联到所有子视图(除非显式覆盖),因此将其设置在窗口上将有效地使其在该窗口内具有全局性。

    在使窗口键可见之前,将以下行添加到您的application(_:didFinishLaunchingWithOptions:)scene(_:willConnectTo:options:)

    window.tintColor = .systemOrange /* or .orange on iOS < 13 */
    

    您还可以通过更改Global Tint 属性在情节提要中进行设置:

    【讨论】:

    • 当我添加您提供给我的代码时,视图不会加载,这会显示在控制台中:“应用程序窗口应该在应用程序启动结束时有一个根视图控制器”
    • 你在使用故事板吗?
    • 是的!这太容易了,我不知道我怎么不能早点想出这个。感谢您的回答! :D 编辑:我已经将它设置在那里,但颜色没有改变 o.o
    • 这很奇怪。你确定你没有覆盖这个颜色吗?也许隐含在其他一些 IB 文件中?
    • 有效!尝试添加步进器或滑块...如果您想更改标签栏项目的突出显示颜色,您必须明确执行此操作,它们不会响应 tintColor。此外,标签也有自己的 textColor 属性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多