在TabView中设置SwiftUI PageTabViewStyle垂直流向

时间:2020-06-23 11:31:00

标签: swift swiftui wwdc

现在可以使用修饰符创建水平滚动页面控制器:

.tabViewStyle(PageTabViewStyle())

默认情况下,页面是水平显示的。如何修改为像UIPageViewController一样垂直滚动?

2 个答案:

答案 0 :(得分:1)

这就是您所需要的

.tabViewStyle(PageTabViewStyle())
.rotationEffect(.degrees(90))

答案 1 :(得分:0)

受Ernist的回答启发,我找到了一种有效的方法。

GeometryReader { proxy in
    TabView(selection: selection) {
        everyView
            .frame(width: proxy.size.width, height: proxy.size.height)
            .rotationEffect(.degrees(-90))
            .rotation3DEffect(flippingAngle, axis: (x: 1, y: 0, z: 0))
    }
    .frame(width: proxy.size.height, height: proxy.size.width)
    .rotation3DEffect(flippingAngle, axis: (x: 1, y: 0, z: 0))
    .rotationEffect(.degrees(90), anchor: .topLeading)
    .offset(x: proxy.size.width)
}.tabViewStyle(PageTabViewStyle())

我还构建了一个swift package (VerticalTabView ?),可以将所有代码包装在其中:

VTabView {
    everyView
}.tabViewStyle(PageTabViewStyle())