swift - 如何防止 ScrollView 在 SwiftUI 中捕获超出其边界的点击?
问题描述
这是我可以运行的完整代码:
struct ContentView: View {
var body: some View {
NavigationView {
VStack(spacing: 0) {
Rectangle().frame(height: 100)
ScrollView(.vertical, showsIndicators: false) {
ForEach((0..<1000)) { index in
NavigationLink("Click on this line - \(index)", destination: Text("CONGRATS!! ITS \(index)!!!"))
}
}
}
}
}
}
这是一个简单的 VStack,嵌入了 2 个视图 -> ARectangle
和ScrollView
错误:滚动滚动视图。如果您现在点击矩形,滚动视图的行将被点击。
当它们在 VStack 中分离时,这怎么可能?我该如何解决这个问题?
解决方案
解决来自@SwiftUILab的修复
struct ContentView: View {
var body: some View {
NavigationView {
VStack(spacing: 0) {
Rectangle().frame(height: 100)
ScrollView(.vertical, showsIndicators: false) {
ForEach((0..<1000)) { index in
NavigationLink("Click on this line - \(index)", destination: Text("CONGRATS!! ITS \(index)!!!"))
}
}.contentShape(Rectangle())
}
}
}
}
推荐阅读
- html - 用css使元素弯曲
- bash - Bash Process Substitution 使用 tee 和 while 循环
- ruby-on-rails - 生产中的 Rails 线程限制
- javascript - 如何在 d3js 中制作分组堆积条形图?
- getgauge - 从 jar 文件运行仪表测试
- azure-api-management - 为用户创建订阅的 Azure API 管理 REST 调用(缺失)
- ruby-on-rails - 使用 javascript 和 Rails 部分显示动态内容
- node.js - 访问 json 数据数组以存储在 mongodb 中,子文档
- rust - 是否可以从另一个成员闭包调用成员闭包?
- ios - 将 expo 应用程序版本上传到应用商店