SwiftUI で透明な View に Gesture を設定する
下記のように、Color.clear のような透明のビューにジェスチャーを追加したかったけど反応しなかった。
import SwiftUI struct ExampleView: View { @State var text: String = "ケバブ" var body: some View { ZStack { Color.clear .onTapGesture { text = "ハンバーガー" } Text(text) } } }
下記のように contentShape
を設定してあげるとジェスチャーが反応するようになる。
import SwiftUI struct ExampleView: View { @State var text: String = "ケバブ" var body: some View { ZStack { Color.clear .contentShape(Rectangle()) // 追加 .onTapGesture { text = "ハンバーガー" } Text(text) } } }
Color.clear だけでなく、 VStack や HStack といった、コンテナ的な View も同様の方法で設定できるとのこと。