我正在使用一些形状在 SwiftUI 中创建一个自定义按钮。
作为一个最小的例子,我有一个实心矩形,由一个描边圆(无填充)包围。它被封装在一个 ZStack 中,并添加了一个 TapGesture。它有效,但我唯一的问题是正方形和圆形之间的空白区域不可点击。
如何在不向圆圈添加填充的情况下使圆圈内的所有内容均可点击?
struct ConfirmButton: View {
var action: () -> Void
var body: some View {
ZStack {
Circle()
.stroke(Color.purple, lineWidth: 10.0)
.padding(5)
Rectangle()
.fill(Color.red)
.frame(width: 200, height: 200, alignment: .center)
}.gesture(
TapGesture()
.onEnded {
print("Hello world")
self.action()
}
)
}
}
Run Code Online (Sandbox Code Playgroud)