You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在watchOS 10中移除VerticalPageTabViewStyle的索引指示器?

问题:VerticalPageTabViewStyle无法控制索引指示器显示状态

环境

  • watchOS 10、Xcode 15、SwiftUI 5

代码实现

尝试通过绑定变量控制索引指示器显示状态的代码:

struct PageTwo: View {
    
    @Binding var showIndicator: Bool
    
    var body: some View {
        NavigationStack {
            TabView {
                setRemindersPage()
                ReminderPage()
            }
            .tabViewStyle(VerticalPageTabViewStyle(indexDisplayMode: showIndicator ? .always : .never))
        }
    }
}

运行错误

  • 向无参数调用传递了参数
  • 无法推断成员'always'的上下文基础

此实现方式在PageTabViewStyle中可正常工作,但在VerticalPageTabViewStyle中失效,请问该如何移除VerticalPageTabViewStyle的索引指示器?


解决方案

VerticalPageTabViewStyle的初始化方法不支持直接传入indexDisplayMode参数,它和PageTabViewStyle的API设计不同。正确的做法是先初始化VerticalPageTabViewStyle,再通过indexDisplayMode(_:)修饰方法来设置索引显示状态。

修改后的代码如下:

struct PageTwo: View {
    
    @Binding var showIndicator: Bool
    
    var body: some View {
        NavigationStack {
            TabView {
                setRemindersPage()
                ReminderPage()
            }
            .tabViewStyle(VerticalPageTabViewStyle())
            .indexDisplayMode(showIndicator ? .always : .never)
        }
    }
}

这样即可通过绑定变量showIndicator动态切换索引指示器的显示状态:当showIndicator为false时,索引指示器会被隐藏;为true时则始终显示。

内容的提问来源于stack exchange,提问作者Yev M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 00:44:56