SwifUI onTapGesture внутри ScollView не всегда обнаруживает касание

У меня проблема с представлениями, которые имеют onTapGestureи размещены внутри ScollView. Этот onTapGesture не всегда реагирует на жест касания. Мне нужно нажать именно на такой вид. Кажется, есть конфликт с перетаскиванием ScrollView?

я пробовал

      highPriorityGesture 
onTapGesture
gesture(DragGesture(minimumDistance:0).onChange { })
gesture(TapGesture().onEnded { }) 

К представлениям добавлено contentShape(Rectangle())

Иногда работает нормально иногда нет. На симуляции большую часть времени работает нормально, на физическом устройстве гораздо хуже.

                  ScrollViewReader { proxy in
                HStack(spacing: spacing) {
                    ForEach(0 ..< elements.count, id: \.self) { i in
                        Text(elements[i])
                            .fixedSize()
                            .contentShape(Rectangle())
                            .onTapGesture {
                                withAnimation {
                                    selectedElement = i
                                }
                            }
                    }

1 ответ

Я не смог воспроизвести поведение, которое вы описываете, с помощью этого примера кода, но, возможно, вы могли бы попробовать следующий модификатор на случай, если в то же время работает другой жест:

      .simultaneousGesture(TapGesture().onEnded({
              selectedElement = 1
            }))