我们有一个自定义视图,我们在表单中使用(它的主要功能是能够在表单上出现验证错误时显示漂亮的边框):
struct ButtonNavigationLink: View {
var label: String
var markingType: MarkingType = .none
var action: () -> Void
var body: some View {
GeometryReader { geometry in
HStack {
Text(label)
.offset(x: 5, y: 0)
Spacer()
Image("PfeilRechts")
}
.frame(width: geometry.size.width + 10, height: geometry.size.height, alignment: .leading)
.padding(.trailing, 5)
.border(markingType.getMarkingColor())
.offset(x: -5, y: 0)
// to allow click on the whole width
.contentShape(Rectangle())
.onTapGesture {
print("in ButtonNavigationLink")
self.action()
}
}
}
}
onTapGesture 工作得很好,直到它不再工作。如果我们打开其他床单然后最终来到这张床单,就会发生这种情况。
有趣的是,当它不再工作时,如果你滚动包含它的表单,即使如此轻微,它也会再次开始工作。表单未禁用