SwiftUI: столкновение жестов перетаскивания NavigationLink и ScrollView - PullRequest
2 голосов
/ 17 октября 2019

Я пытаюсь реализовать UICollectionView как View в SwiftUI, который в принципе работает нормально. Но когда я прокручиваю / перетаскиваю внутри вида прокрутки для прокрутки вниз, касание распознается на NavigationLink и затем перемещается к подробному представлению, даже если я просто хотел прокрутить вниз.

Любые идеи, которые могутбыть причиной этого? Дополнительная информация: все NavigationView открывается из .sheet из другого вида (как вы могли заметить на скриншоте). Я попытался добавить ссылку «вручную», установив свойство tag для ссылки и установив тег внутри TapGesture, но это тоже не работает.

Вот краткий пример, где ошибкаможно воспроизвести. Прокрутка вниз активирует нажатие на один из белых прямоугольников.

Вид перед жестом перетаскивания при просмотре прокрутки

Вид во время жеста перетаскивания, касание уже распознано на NavigationLink

Навигационный вид переводит в подробный вид после жеста перетаскивания

    var body: some View {
        NavigationView {
            ScrollView {
                VStack {
                    ForEach(0..<6) { i in
                        NavigationLink(destination: Text("Detail")) {
                            Rectangle()
                                .background(Color.red)
                                .frame(width: 365, height: 100, alignment: .center)
                        }
                    }
                }
            }
            .navigationViewStyle(StackNavigationViewStyle())
            .navigationBarTitle("Items")
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...