This uses TabView with a .page tabViewStyle to implement the basic paging behaviour, but it accepts a second closure should be a view builder defining the index view to use instead of the default dots.
It also allows you to specify the alignment and padding of the index view - so you can inset it more than usual or move it to the top or to one side.
PageView
A slightly more flexible SwiftUI PageView.
This uses TabView with a
.pagetabViewStyle to implement the basic paging behaviour, but it accepts a second closure should be a view builder defining the index view to use instead of the default dots.It also allows you to specify the alignment and padding of the index view - so you can inset it more than usual or move it to the top or to one side.
Usage:
Stacked Variant
By default,
PageViewuses aZStackto place its index view on top of its content.Unfortunately this seems to cause some issues that prevent the index view from detecting taps/clicks.
As a workaround, there is also a
VStackPageViewvariant, which stacks the index view below the content.This variant has no problems detecting taps, and is a better choice if you want the index view at the bottom of the content.