我正在尝试创建一个ButtonStyle
提供一些默认值但也可以覆盖的自定义。
例如,在 iOS 上,DefaultButtonStyle
默认情况下将文本着色为蓝色,但您可以通过指定foregroundColor
修饰符来覆盖它。同样,PlainButtonStyle
默认情况下将文本着色为黑色,但也可以覆盖:
很明显,可以创建可覆盖的按钮样式。但是,如果我只是创建一个像这样设置前景色的,它是不可覆盖的:
public struct CustomButtonStyle: ButtonStyle {
public func makeBody(configuration: Self.Configuration) -> some View
{
configuration.label
.foregroundColor(Color.blue)
}
}
Run Code Online (Sandbox Code Playgroud)
如何制作一个ButtonStyle
提供默认前景色但也可以覆盖的颜色?
提前致谢!
你可以这样实现:
public struct CustomButtonStyle: ButtonStyle {
let color: Color
public init(color: Color = .accentColor) {
self.color = color
}
public func makeBody(configuration: Self.Configuration) -> some View {
configuration.label
.foregroundColor(color)
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
713 次 |
最近记录: |