在触控板上用两个手指滑动时,SwiftUI列表不会滚动



我一直在测试这个简单的SwiftUI代码:它在ContentView中有一个列表。当点击列表中的一个单元格时,它会将一个SecondList推入导航堆栈。当这个SwiftUI代码在带触控板的真正iPad上运行时,我用两个手指滑动来上下滚动列表。ContentView中的列表平滑滚动。然而,对于SecondList,它可能随机冻结,此后没有响应。

它在UIKit项目中也失败了,在该项目中,我使用UIHostingViewControllerUINavigationView替换为该ContentView

它在模拟器和带有魔术键盘的iPad Pro硬件上用iPadOS 14.5进行了测试。

我该如何解决这个问题?非常感谢。

import SwiftUI
struct ContentView: View {
var body: some View {
NavigationView {
List {
ForEach(0..<30, id: .self) { index in
NavigationLink(
destination: SecondList(),
label: {
Text(String(index))
})
}
}
}.navigationViewStyle(StackNavigationViewStyle())
}
}
struct SecondList: View {
var body: some View {
List {
ForEach(0..<30, id: .self) { index in
Text(String(index))
}
}
}
}

struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}

使用滚动视图

import SwiftUI
struct ContentView: View {
var body: some View {
NavigationView {
List {
ForEach(0..<30, id: .self) { index in
NavigationLink(
destination: SecondList(),
label: {
Text(String(index))
})
}
}
}.navigationViewStyle(StackNavigationViewStyle())
}
}
struct SecondList: View {
var body: some View {
scrollView {
List {
ForEach(0..<30, id: .self) { index in
Text(String(index))
}
}
}
}
}

最新更新