由于
foregroundColor
将被/现已弃用,我试图使用推荐的替代方案foregroundStyle
,但是当我尝试将.accentColor
作为参数传递时,它会显示此错误:
为什么它对
foregroundColor
有效?现在使用 .accentColor
的最佳方式是什么?
感谢您提供任何信息:)
foregroundStyle
需要 ShepeStyle
,而 foregroundColor
需要 Color
。
正如您在文档中看到的,
ShapeStyle
确实没有声明任何称为accentColor
的东西,因此您无法通过.accentColor
。不过你可以通过Color.accentColor
,因为Color
符合ShapeStyle
。请注意,在此上下文中,Color.accentColor
与 .accentColor
不同。如果没有 Color
前缀,Swift 会尝试在 accentColor
中查找 ShapeStyle
,因为这就是 foregroundStyle
所需要的。
.tint
,它 是 ShapeStyle
的成员。这将是由 .tint(_:)
修改器设置的颜色,如果未设置,则源自 Color.accentColor
。