相关疑难解决方法(0)

SwiftUI 中可覆盖的 ButtonStyle

我正在尝试创建一个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提供默认前景色但也可以覆盖的颜色?

提前致谢!

swift swiftui

8
推荐指数
1
解决办法
713
查看次数

如何在SwiftUI中访问视图的修改器?

假设我有一个ViewImage具有shadow特性:

struct ContentView: View {
    var body: some View {
        let myImage = Image("turtlerock").shadow(radius: 10)

        return myImage
    }
}
Run Code Online (Sandbox Code Playgroud)

现在想象我要访问阴影半径的值。我以为我可以做到这一点:

print(myImage.shadow.radius)
Run Code Online (Sandbox Code Playgroud)

但是,这将返回错误:

类型'(颜色,长度,长度,长度)-> _ModifiedContent <_ModifiedContent,_ShadowEffect>'的值(aka'(颜色,CGFloat,CGFloat,CGFloat)-> _ModifiedContent <_ModifiedContent,_ShadowEffect>')没有成员'radius'

有没有办法访问修饰符?

swift swiftui

3
推荐指数
1
解决办法
254
查看次数

标签 统计

swift ×2

swiftui ×2