如何在 SwiftUI 中访问视图的修饰符?

How can I access modifiers of a view in SwiftUI?

假设我有一个 View 和一个 Image 有一个 shadow 属性:

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

        return myImage
    }
}

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

print(myImage.shadow.radius)

然而,这returns一个错误:

Value of type '(Color, Length, Length, Length) -> _ModifiedContent<_ModifiedContent, _ShadowEffect>' (aka '(Color, CGFloat, CGFloat, CGFloat) -> _ModifiedContent<_ModifiedContent, _ShadowEffect>') has no member 'radius'

有没有办法访问修改器?

myImage的return类型是:

_ModifiedContent<Image, _ShadowEffect>

我们可以通过以下方式访问原始图像:

myImage.content

我们可以通过键入以下内容来访问阴影效果修改器:

myImage.modifier

因此,要执行您想要的操作,您必须键入:

print(myImage.modifier.radius)