使用 Digital Crown 滚动的 Apple Watch 上的垂直 TabView 或分页

bra*_*aza 3 swift apple-watch watchkit watchos swiftui

我正在尝试重新创建 Apple Watch 上的 Apple Workout 应用程序等应用程序所使用的垂直滚动。请参阅下面的屏幕截图:

锻炼应用程序垂直选项卡

它使用常规的TabView和看起来类似于右侧垂直 TabView 的东西。您可以用手指或数字表冠滚动,它会像选项卡一样在页面之间跳转。在屏幕截图中,顶部的时间部分是固定的,只有下面的部分随着不同的视图而变化。

他们在这里使用公共组件吗?如果没有,如何重新创建它?

它的行为几乎与常规 TabView 相同,只是它允许使用数字表冠滚动,并且当您这样做时,它会在淡出之前变成绿色而不是白色。

这是我到目前为止所尝试的,但它非常老套,而且使用旋转并不理想。您还需要根据数字表冠的移动手动实现页面更改。

 GeometryReader { proxy in
            VStack {
                Text("00:00:00 - Fixed above")
                TabView {
                    VStack {
                        Text("Page 1")
                    }.rotationEffect(.degrees(90))
                    VStack {
                        Text("Page 2")
                    }.rotationEffect(.degrees(90))
                    VStack {
                        Text("Page 3")
                    }.rotationEffect(.degrees(90))
                }.rotationEffect(.degrees(-90)).frame(width: proxy.size.height, height: proxy.size.width)
            }
        }
Run Code Online (Sandbox Code Playgroud)

演示代码输出

bra*_*aza 5

事实证明,就像将样式设置为 一样简单carousel。它甚至可以为您进行数字表冠翻页。

TabView{
  Text("Page 1")
  Text("Page 2")
  Text("Page 3")
}.tabViewStyle(.carousel)
Run Code Online (Sandbox Code Playgroud)

结果