Disabling user interactivity with allowsHitTesting()こちらの記事を参考にRectangleとCircleであればCirgleの下にあるRectangleのタップイベントを検知することができますがこれがImageになると何故かallowsHitTestingに関係なくタップが取れなくなってしまいます。
Imageで下のViewにタップを伝播したい時はどうしたら良いのでしょうか
うまく伝播されるコード
swift
1struct ContentView: View { 2 var body: some View { 3 ZStack { 4 Rectangle() 5 .fill(Color.blue) 6 .frame(width: 300, height: 300) 7 .onTapGesture { 8 print("Rectangle tapped!") 9 } 10 11 Circle() 12 .fill(Color.red) 13 .frame(width: 300, height: 300) 14 .onTapGesture { 15 print("Circle tapped!") 16 } 17 .allowsHitTesting(false) 18 } 19 } 20}
Imageを使ったうまくいかないコード
Swift
1struct ContentView: View { 2 var body: some View { 3 ZStack { 4 Rectangle() 5 .fill(Color.blue) 6 .frame(width: 300, height: 300) 7 .onTapGesture { 8 print("Rectangle tapped!") 9 } 10 11 Image(systemName: "star") 12 .frame(width: 300, height: 300, alignment: .center) 13 .background(Color.green) 14 .onTapGesture {} 15 .allowsTightening(false) 16 } 17 } 18} 19
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/09/08 08:24