为什么 .accentColor 在 SwiftUI 中适用于 .foregroundColor(_:) 而不适用于 foregroundStyle(_:)?

问题描述 投票:0回答:1

由于

foregroundColor
将被/现已弃用,我试图使用推荐的替代方案
foregroundStyle
,但是当我尝试将
.accentColor
作为参数传递时,它会显示此错误:

为什么它对

foregroundColor
有效?现在使用
.accentColor
的最佳方式是什么?

感谢您提供任何信息:)

ios swift swiftui view deprecated
1个回答
0
投票

foregroundStyle
需要
ShepeStyle
,而
foregroundColor
需要
Color

正如您在文档中看到的,

ShapeStyle
确实没有声明任何称为
accentColor
的东西,因此您无法通过
.accentColor
。不过你可以通过
Color.accentColor
,因为
Color
符合
ShapeStyle
。请注意,在此上下文中,
Color.accentColor
.accentColor
不同。如果没有
Color
前缀,Swift 会尝试在
accentColor
中查找
ShapeStyle
,因为这就是
foregroundStyle
所需要的。

还可以考虑使用

.tint
,它
ShapeStyle
的成员。这将是由
.tint(_:)
修改器设置的颜色,如果未设置,则源自
Color.accentColor

© www.soinside.com 2019 - 2024. All rights reserved.