快速更改默认全局色调颜色
Posted
技术标签:
【中文标题】快速更改默认全局色调颜色【英文标题】:Change default global tint color in swift 【发布时间】:2014-09-25 12:39:45 【问题描述】:我正在开发一个小应用程序,我想将默认的全局色调颜色从蓝色更改为橙色。我已经在 Objective-C 中看到了很多方法,但我似乎无法使用 swift 让它工作。我怎么能做到这一点?提前致谢!
【问题讨论】:
【参考方案1】:来自 Apple here 的小更新。使用 Xcode 12.4 版测试。
现在颜色资源目录中有一个AccentColor
,可以在构建设置中进行设置。在较新的项目中默认设置,但较旧的项目可能需要手动添加。
-
创建名称为“
AccentColor
”(或任何您喜欢的名称)的颜色资源
转到目标的构建设置并添加颜色资源的名称作为条目“Global Accent Color Name
”的值。
请注意
AccentColor
asset-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
属性。以上是关于快速更改默认全局色调颜色的主要内容,如果未能解决你的问题,请参考以下文章