SwiftUIで、画像やテキストなどのビューに「ぼかし効果」をつけることのできるのが今回紹介するblurモディファイア。
サンプルコードを交えて基本的な使い方を紹介する。
サンプルコード
今回はImageビューと、Textビューを用意し、それぞれにぼかし効果を付けていく例を紹介する。
struct ContentView: View {
@State var radius: CGFloat = 3.0
var body: some View {
VStack {
Image("pasta")
.resizable()
.scaledToFit()
.blur(radius: radius)
Text("Pasta")
.font(.largeTitle)
.blur(radius: radius)
VStack(alignment: .leading) {
Text("ぼかし: \(radius)")
Slider(value: $radius,
in: 0...20)
}
}
}
}
まず、2行目でぼかしの半径を設定する状態変数を定義しておき、15行目のSliderビューに変数をバインドさせる。
こうすることでスライダーを動かした時に、9行目、12行目で設定したblurモディファイアに設定した状態変数radiusがリアルタイムで書きかわり、ビューにぼかしが適用される。