我正在使用此代码创建背景模糊视图:
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)
但是,此代码返回一个背景模糊的常规矩形。我怎样才能把它变成圆形?
您可以创建另一个 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
看看这个答案: