5 swiftui
我正在使用这个向下代码来读取用户在 Circle 上的点击,问题是它适用于帧 100X100 的所有部分,但我希望它只适用于颜色填充的 Circle,我该如何解决这个问题?
struct ContentView: View {
var body: some View {
Circle()
.fill(Color.red)
.frame(width: 100, height: 100, alignment: .center)
.onTapGesture {
print("tap")
}
}
}
Run Code Online (Sandbox Code Playgroud)
一个不错的小技巧是向圆圈添加一个背景层(它不能 100% 清晰,否则无法渲染,所以我将其不透明度设置为 0.0001,看起来很清晰),然后在该层上添加另一个 tapGesture。新手势将在背景区域中优先,我们可以不执行任何操作就将其保留,这样就不会发生任何事情。
Circle()
.fill(Color.red)
.frame(width: 100, height: 100, alignment: .center)
.background(
Color.black.opacity(0.0001).onTapGesture { }
)
.onTapGesture {
print("tap")
}
Run Code Online (Sandbox Code Playgroud)