ios - 结合 PageTabViewStyle() 和 DefaultTabViewStyle()
问题描述
我想要实现的是 PageTabViewStyle 的水平滚动功能以及 TabView 的背景清晰(因为我通过 ZStack 添加了平铺背景,我希望它在 TabView 和 UITabBar 之间无缝) - 这两个东西都是开箱即用的 PageTabViewStyle
但是,我希望添加到 tabItems 的图标(图像)保持它们的大小和纵横比,并且我想根据选择的选项卡手动切换图标 - 本质上是 DefaultTabViewStyle。(在 PageTabViewStyle 中看起来像是在选定的图标上添加了一个灰色叠加层)
这就是我所拥有的,并注释掉我想要的两种状态之间的 tabViewStyle 切换:
ZStack {
Image("BackgroundImage")
.resizable(resizingMode: .tile)
.background(Color.background)
.ignoresSafeArea()
TabView(selection: $selected) {
Text("page 1").tabItem {Image(selected == 0 ? "1_selected" : "1")}.tag(0)
Text("page 2").tabItem {Image(selected == 0 ? "2_selected" : "2")}.tag(0)
}
// .tabViewStyle(PageTabViewStyle())
}
旁注:我用 swift/xcode 编程已经有好几年了,所以我有点生疏了,但是 SwiftUI 文档是怎么回事?我尝试比较Apple Developer Docs 中的两种结构,但页面没有关于两种 TabViewStyles 有何不同的信息,或者如何编辑 TabViewStyle 的任何方面以获得他们想要的行为(因此我在这里发布) - 我觉得这类问题的答案应该可以通过阅读文档来找到,但我一辈子都找不到足够的 SwiftUI 结构和协议文档
解决方案
推荐阅读
- javascript - RxJS / Angular:在订阅之前捕获 FormControl 的 valueChanges
- flutter - 当 showBottomSheet 包含可滚动小部件时,如何使 showBottomSheet 继续滑动?
- typo3 - powermail:没有强制选项的自定义验证器
- javascript - 如何使用 Jquery 模板加载多个模板?
- node.js - 如何在不同的 cwd 中运行 nodemon?
- ios - 是否可以在可本地化的字符串中自定义某些单词?
- java - Spring boot,Caffeine 缓存作为令牌存储,刷新和驱逐
- python - Pytest:仅测试参数化夹具的一个实例
- c# - 在ac#程序中,有没有办法打开file.txt,而不使用整个文件路径
- c - 如何计算c中每个字符串的单词和句子数?