ベストアンサー1
Apple流
ビュー階層を調査すると、Apple がUIKit
と を使用していることがわかります。これは、わずか 5 行のコードでUIVisualEffectView
定義できます。VisualEffectView
struct VisualEffectView: UIViewRepresentable {
var effect: UIVisualEffect?
func makeUIView(context: UIViewRepresentableContext<Self>) -> UIVisualEffectView { UIVisualEffectView() }
func updateUIView(_ uiView: UIVisualEffectView, context: UIViewRepresentableContext<Self>) { uiView.effect = effect }
}
使用例:
struct ContentView: View {
var body: some View {
ZStack {
Image("BG")
.resizable()
.scaledToFill()
.edgesIgnoringSafeArea(.all)
VisualEffectView(effect: UIBlurEffect(style: .dark))
.edgesIgnoringSafeArea(.all)
Text("Hello \nVisual Effect View")
.font(.largeTitle)
.fontWeight(.black)
.foregroundColor(.white)
}
}
}
ネイティブ SwiftUI の方法:
.blur()
ぼかす必要があるものに、次のように修飾子を追加できます。
struct ContentView: View {
var body: some View {
ZStack {
Image("BG")
.resizable()
.scaledToFill()
.edgesIgnoringSafeArea(.all)
.blur(radius: 20) // <- this is the important modifier. The rest is just for demo
Text("Hello \nSwiftUI Blur Effect")
.font(.largeTitle)
.fontWeight(.black)
.foregroundColor(.white)
}
}
}
ご了承くださいGroup
複数のビューを作成して、それらをぼかすことができます。
iOS 15 - アップルマテリアル
1 行のコードで iOS の定義済みマテリアルを使用できます:
.background(.ultraThinMaterial)