问题标签 [swiftui-tabview]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swift - tvOS SwiftUI TabView 动态更改栏颜色
我有一个顶部有 TabView 的 tvOS 应用程序。我想使用 TabView 的背景颜色来指示状态。最初它将是红色的,当其中一个视图发生某些事情时,我想将 TabView 的背景颜色更改为绿色。
我正在使用UITabBar.appearance().barTintColor = UIColor.red
ininit()
将初始颜色设置为红色,但我找不到在稍后执行时将其更改为绿色的方法。
swift - SwiftUI TabView 没有出现在模拟器中,但确实出现在 xcode 中
TabView 没有出现在模拟器中[在此处输入图像描述][2]
TabView 在编码时确实出现在 xcode [2]:https ://i.stack.imgur.com/BMPJM.png
ios - SwiftUI 如何在 PageTabViewStyle 中跟踪页面索引?
我正在尝试跟踪用户在 SwiftUI 中的哪个页面上,TabView
但PageTabViewStyle
我无法找出跟踪页面索引的最佳方法?使用.onAppear
效果不佳,因为它被多次调用,即使不在屏幕上,第 2 页和第 3 页也会被调用。
ios - SwiftUI:在使用自定义页面视图时保持垂直滚动?
我正在使用下面的代码PagerView
(来自此 Github Gist 的评论)来创建一个页面滑动 UI,它工作得非常好,并且比使用滑动过渡非常跳跃的情况要平滑TabView
得多.tabViewStyle(PageTabViewStyle(indexDisplayMode: .never))
。但是,当我ScrollView
在包含它的视图周围环绕时,PagerView
它不会让我在每个PagerView
页面内的子视图上垂直滚动。我注释掉了动画,PagerView
没有任何改变,所以我不认为就是这样。任何其他想法是什么阻止我垂直滚动?
swiftui - matchGeometryEffect 不适用于 PageTabView
当我试图给每个 TabView 项目一个效果 id 时,它会抱怨Multiple inserted views in matched geometry group Pair<Int, ID>(first: 0, second: SwiftUI.Namespace.ID(id: 180)) have isSource: true, results are undefined.
为 PageTabView 中的项目分配 id 的正确方法是什么matchedGeometryEffect
,以便我可以像 iOS 照片应用程序一样放大和缩小过渡?
还是 SwiftUI 的 bug?
swift - SwiftUI:在选项卡视图中显示键盘在第二个选项卡视图下方添加了一个奇怪的空间
这听起来是 SwiftUI 中的一个错误NavigationView
,TabView
当我有一个TabView
(假设)2 个选项卡时,第一个选项卡有一个TextField
,第二个选项卡有一个NavigationView
,请按照以下步骤生成错误:
- 通过点击文本字段显示键盘。
- 按“返回”按钮隐藏键盘。
- 转到选项卡 2。
- 注意奇怪的底部在视图下方添加了空间,大约等于键盘的高度。
-注意1:如果您执行以下任何操作,则该错误将不会被复制:
- 应用程序启动后,打开选项卡 2,返回选项卡 1 并显示键盘。
NavigationView
从选项卡 2中删除- 在选项卡 1 中再显示一次键盘
注意2:
我GeometryReader
在选项卡 2 中使用黄色显示整个视图区域。
工作代码示例(只需复制粘贴即可尝试):
截屏:
有没有办法解决这个问题而不必删除NavigationView
,我尝试了所有可能的解决方案,但找不到避免它的线索?
swift - SwiftUI:重置 TabView
我在生命周期应用程序TabView
中有两个选项卡SwiftUI
,其中一个具有复杂的视图结构:NavigationView
内部有很多子视图,即:NavigationLink
s 和它们DestinationView
的 s 分布在视图树的多个级别上,每个子视图在其上own 是另一个带有sheet
s 和/或 other的视图层次结构DestinationView
。在这个层次结构中的某个点,我想将TabView
其重置为显示第一个最多视图的原始状态,这样用户就可以在该状态下重新开始他们的旅程,就像他们第一次打开应用程序一样,所以它是有点不可能找到类似isActive
&isPresented
绑定的东西来弹出或关闭视图和工作表。
我想在TabView
内部包装另一个视图:RootView
试图找到一种简单的方法来TabView
从头开始重新创建它,或者像刷新/重置一样,TabView
但找不到关于如何做到这一点的提示。
这是我的代码片段:
ps 我不是在寻找“从视图弹出到根视图NavigationLink
”,因为当用户可能打开其中一个工作表并在工作表内开始新的导航旅程的许多活动目的地时,这是无法完成的。
******更新******
我创建了一个新Environment
值来保存一个布尔值,该布尔值应该指示是否TabView
应该重置,并且我已经跟踪了每个视图中的每个变量isPresented
和isActive
状态变量,并在将环境值设置为true
如下时重置它们:
在将呈现工作表或推送新视图的每个视图中,我添加了如下内容:
在最后一个视图(将重置TabView
)中,我像这样切换Environment
值:
这导致尴尬地驳回意见: