在 SwiftUI 中创建背景模糊的圆角矩形

Hek*_*kes 3 ios swift swiftui

我正在使用此代码创建背景模糊视图:

struct Blur: UIViewRepresentable {
    let style: UIBlurEffect.Style = .systemUltraThinMaterial

    func makeUIView(context: Context) -> UIVisualEffectView {
        return UIVisualEffectView(effect: UIBlurEffect(style: style))
    }

    func updateUIView(_ uiView: UIVisualEffectView, context: Context) {
        uiView.effect = UIBlurEffect(style: style)
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,此代码返回一个背景模糊的常规矩形。我怎样才能把它变成圆形?

paw*_*222 5

您可以创建另一个 SwiftUI 视图:

struct BlurCircle: View {
    var body: some View {
        Blur()
            .clipShape(Circle())
    }
}
Run Code Online (Sandbox Code Playgroud)

并像这样使用它:

struct ContentView: View {
    var body: some View {
        BlurCircle()
            .frame(width: 100, height: 100)
    }
}
Run Code Online (Sandbox Code Playgroud)

或者,你可以这样做:

struct ContentView: View {
    var body: some View {
        Blur()
            .frame(width: 100, height: 100)
            .clipShape(Circle())
    }
}
Run Code Online (Sandbox Code Playgroud)

如果您不想在结构体之外执行此操作,可以Blur看看这个答案: