一个稍微更灵活的 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 变体,它将索引视图堆叠在内容下方。
此变体在检测点击方面没有问题,如果您希望索引视图位于内容的底部,这是一个更好的选择。