swiftui - 使用 PageTabViewStyle 在 TabView 中正确禁用对 UIPageControl 的触摸
问题描述
我已经建立了一个(分页)TabView
。.tabViewStyle(PageTabViewStyle(indexDisplayMode: .always))
我希望 IndexView 只是可视的,即不响应任何触摸。
为了实现这一点,我设置UIPageControl.appearance().isUserInteractionEnabled = false
了,它实际上禁用了触摸分页。
然而,触摸UIPageControl
(通过设置它以蓝色突出显示backgroundColor
)不会传递到List
下面:点击蓝色区域不会选择List
下面的行。
有没有办法做到这一点?
这是我的示例代码(在 iOS 14.0 beta 4 上运行):
struct ContentView: View {
init() {
UIPageControl.appearance().backgroundColor = UIColor(red: 0, green: 0, blue: 0.5, alpha: 0.5)
UIPageControl.appearance().isUserInteractionEnabled = false
}
var body: some View {
NavigationView {
TabView {
ForEach (0..<3, id: \.self) { page in
List {
ForEach (0..<30, id: \.self) { row in
NavigationLink(
destination: Text("Page \(page) Row \(row)"),
label: {
Text("Page \(page) Row \(row)")
})
}
}
.tag(page)
}
}
.tabViewStyle(PageTabViewStyle(indexDisplayMode: .always))
.indexViewStyle(PageIndexViewStyle(backgroundDisplayMode: .always))
.navigationBarTitle("Title", displayMode: .inline)
.edgesIgnoringSafeArea(.bottom)
}
}
}
解决方案
推荐阅读
- javascript - 如何在反应js中将数据从一个组件传递到另一个组件
- javascript - document.execCommand('SaveAs', null, 'myFile.html'); 是否有替代方案?在铬浏览器中(Microsoft-Edge)
- selenium - 如何使用 Selenium 执行 google 身份验证?
- node.js - 将请求发布到另一条路线,同时将客户端重定向到那里。表示
- mongodb - 使用限定符查询 mongo 中的嵌套数组
- python - 基于另一个数据帧过滤数据帧
- django-models - 显示动态数据;第一行是 6 列,另一行是 col-3 col-3
- r - 带有正则表达式的 Pivot_longer 用于 names_pattern 中的两位数
- json - Flutter(Dart) - 如何从列表中的列表中读取?
- vb.net - 在vb.net中单击DataGridView中的特定单元格时如何打开表单?