SwiftUI - 重音,前景色和色调之间的区别?
Posted
技术标签:
【中文标题】SwiftUI - 重音,前景色和色调之间的区别?【英文标题】:SwiftUI - difference between accent, foreground and tint color? 【发布时间】:2021-07-15 17:06:34 【问题描述】:谁能给我解释一下Foreground、Tint和Accent颜色的区别?
语言上:
Tint 表示阴影 Accent表示鲜艳的色彩 前景表示常规颜色以编程方式:
什么是色调? 前景是改变文本/视图颜色的原色 强调色是辅助色另外,为什么 Accent 在下面的代码中不起作用?
Text("Accent Color")
.accentColor(.blue)
【问题讨论】:
Color.accentColor
是按钮和其他控件的全局颜色,不包括文本。但是,您可以将示例更改为 .foregroundStyle(Color.accentColor)
以工作。
"tint" 来自 UIKIt - 在 SwiftUI 中它被称为 "accent"。您可以使用.accentColor
设置“accentColor” - 但同样,这仅适用于控件。
"foregroundColor" 因视图而异。所以对于Text
,它会改变文本颜色。然后对于Circle
,它会改变填充颜色。
前景色用于文本,强调色用于按钮,色调用于 UIKit 明白了,谢谢!
【参考方案1】:
在 ios 15 Beta 中,有一种设置色调的新方法。
文档说:
强调色
当您想将广泛的主题颜色应用到应用程序的用户界面时,请使用 AccentColor(_:)。某些样式的控件使用强调色作为默认色调。
色调
使用此方法覆盖此视图的默认强调色。与可以被用户偏好覆盖的应用的强调色不同,色调始终受到尊重,应该用作为控件提供额外含义的一种方式。
前景色
显示此视图时使用的前景色。传递 nil 以删除任何自定义前景色并允许系统或容器提供自己的前景色。如果容器特定的覆盖不存在,则系统使用原色。
前景色通常应用于基于文本的视图(文本、标签等)图像(作为模板)。
强调/色调颜色应用于控件(包括控件中的图像,例如按钮、选择器等)。
Accent Color 设置应用的全局整体颜色,tint 用于一次性覆盖控件。
另一种说法是前景色适用于所有非交互式项目,重音/色调适用于交互式项目。
【讨论】:
嘿乍得。似乎不推荐使用accentColor(_:)。但是我看不到设置全局强调色的替代方法,也许是因为 TabBar?谢谢以上是关于SwiftUI - 重音,前景色和色调之间的区别?的主要内容,如果未能解决你的问题,请参考以下文章
如何更改应用程序色调颜色(新的 SwiftUI 生命周期应用程序)?