ios - SwiftUI:NavigationLink 内的水平 ScrollView 中断导航

标签 ios swift swiftui swiftui-navigationlink swiftui-scrollview

我想使用一个简单的水平 ScrollViewNavigationLink里面List .但是,点击 ScrollView不是由 NavigationLink 注册的因此不会导航到目的地。

NavigationView {
    List {
        NavigationLink(destination: Text("Detail")) {
            ScrollView(.horizontal) {
                Text("Tapping here does not navigate.")
            }
        }
    }
}
关于我们如何预防的任何想法 ScrollView从捕获导航点击手势?

最佳答案

您可以移动NavigationLinkbackground并在 onTapGesture 中激活它:

struct ContentView: View {
    @State var isLinkActive = false
    
    var body: some View {
        NavigationView {
            List {
                ScrollView(.horizontal) {
                    Text("Tapping here does not navigate.")
                }
                .onTapGesture {
                    isLinkActive = true
                }
            }
            .background(
                NavigationLink(destination: Text("Detail"), isActive: $isLinkActive) {}
            )
        }
    }
}

关于ios - SwiftUI:NavigationLink 内的水平 ScrollView 中断导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64544452/

相关文章:

android - chromecast 如何连接到其他设备?

ios - Swift Segmented Control Change Index Event,TableView 不更新

iOS 自定义 View - 非常奇怪的属性行为

ios - 如何解码对象数组并从用户默认值中检索它?

ios - 清除 Swift UI 和 ObservableObject 对象数据

xcode - SwiftUI - 如何知道文本中的行数?

ios - SpriteKit 场景中的对象定位

快速使用未解析的标识符 'webView'

iOS SwiftUI - 从先前的结构调用函数

ios - iOS中的哪个应用程序会生成这些用户代理?