PageView (页面视图)

一个稍微更灵活的 SwiftUI 页面视图。

它使用带有 .page tabViewStyle 的 TabView 来实现基本的页面浏览行为,但它接受第二个闭包,该闭包应该是一个视图构建器,用于定义要使用的索引视图,而不是默认的点。

它还允许您指定索引视图的对齐方式和填充 - 因此您可以比平常更多地插入它,或者将其移动到顶部或一侧。

用法

        PageView(selection: $selection, indexAlignment: .bottomLeading, indexPadding: 40.0) {
            ForEach(items) { item in
                Text(item)
                    .tag(item)
            }
        } index: {
            DotsIndexView(currentIndex: selection)
        }
        

堆叠变体

默认情况下,PageView 使用 ZStack 将其索引视图放置在其内容之上。

不幸的是,这似乎会导致一些问题,阻止索引视图检测到点击/单击。

作为一种解决方法,还有一个 VStackPageView 变体,它将索引视图堆叠在内容下方。

此变体在检测点击方面没有问题,如果您希望索引视图位于内容的底部,这是一个更好的选择。