sar*_*unw 12
在 iOS 16 中,您可以通过添加.scrollDisabled(true).
List {
// ...
}
.scrollDisabled(true)
Run Code Online (Sandbox Code Playgroud)
而不是使用Listwhich 是可滚动的,而是使用ForEach.
ForEach 默认情况下不可滚动。
这是一个使用示例 ForEach
struct ContentView: View {
let colors: [Color] = [.red, .green, .blue]
var body: some View {
VStack {
ForEach(colors, id: \.self) { color in
Text(color.description.capitalized)
.padding()
.background(color)
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
一个很好的资源ForEach可以在这里找到,同样的一个List可以在这里找到。
在 iOS 16 及更高版本之前,没有一个优雅的解决方案,您可以使用 .scrollDisabled(true)
否则,唯一对我有用的就是将 .simultaneousGesture(DragGesture(minimumDistance: 0), 包括:.all) 添加到列表中。
简化 YannSteph 的回答:
List {
...
}
.onAppear {
UITableView.appearance().isScrollEnabled = false
}
Run Code Online (Sandbox Code Playgroud)
这是我的扩展,用于在列表中禁用滚动。
extension View {
func hasScrollEnabled(_ value: Bool) -> some View {
self.onAppear {
UITableView.appearance().isScrollEnabled = value
}
}
}
Run Code Online (Sandbox Code Playgroud)
例子:
List {
...
}.hasScrollEnabled(false)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7076 次 |
| 最近记录: |