SwiftUIのビューを透過させるには、不透明度を設定するopacityモディファイアを利用する。
今回はサンプルとして、Imageビューの不透明度をSliderで調整するコードを紹介する。
struct ContentView: View {
@State var opacity = 1.0
var body: some View {
VStack {
Image("pasta")
.resizable()
.scaledToFit()
.opacity(opacity)
VStack(alignment: .leading) {
Text("不透明度: \(opacity)")
Slider(value: $opacity,
in: 0...1)
}
}
}
}
画像は何を使っても良いが、今回はパスタの画像を用意した。
そのまま使うと画像サイズの問題で、画面からはみ出てしまうため、resizableで画像サイズを調整。さらに縦横比が崩れないように、scaledToFitも合わせて使っている。
Sliderにはopacity状態変数をバインドさせておき、スライダーの動きに合わせてリアルタイムでビューに値が反映されるようにしている。
このサンプルアプリを実行してみる。



スライダーの動きに合わせて、画像の透明度が変化していることが分かる。