SwiftUI — onTapGesture на HStack работает, пока не перестанет работать
У нас есть пользовательское представление, которое мы используем в формах (его основная функция — показывать красивую рамку, если в форме есть ошибка проверки):
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 работает хорошо, пока не перестанет работать. Это происходит, если мы открываем другие листы и в итоге приходим к этому.
Самое смешное, что когда он больше не работает, если вы даже слегка прокрутите форму, содержащую его, он снова начнет работать. Форма не отключена