🎨

【SwiftUI】Materialの透明度を指定する ※ベータ版

2021/07/10に公開

※環境はXcode 13.0 beta (13A5155e)。後に変更が加えられる可能性がある。

問題

2021年のSwiftUIには、UIKitのUIVisualEffectViewに相当するMaterialが登場した。しかしこれはColorとは違ってViewではないので、直接opacityメソッドで透明度を調節できない。

Material.regularMaterial
    .opacity(0.5)    //💥

対処法

Viewとして扱えるようにColor.clearをかます。

Color.clear
    .background(.regularMaterial)
    .opacity(headerOpacity)    //✅

これでうまくいく。

Discussion