iPages
๐Ÿ“–

Quickly implement swipable page views in iOS.
๐Ÿ“

Get Started | Examples | Customize | Install |

CI

Get Started

  1. Install iPages

  2. Add iPages to your project

import SwiftUI
import iPages

struct ContentView: View {
    var body: some View {
        iPages {
            Text("iPages ๐Ÿค‘")
            Color.pink
        }
    }
}
  1. Customize your iPages

Examples

Marketing Materials
๐Ÿ’ธ

Use iGraphicsView to demo marketing slides.

import SwiftUI
import iPages
import iGraphics

struct ContentView: View {
    var body: some View {
        iPages {
            iGraphicsView(.first)
            iGraphicsView(.second)
            iGraphicsView(.third)
        }
    }
}

Shopping App
๐Ÿ›

If you want, you can pass in your own optional selection binding to iPages. Hide the bottom dots & add infinite scroll to remove context.

import SwiftUI
import iPages
import iGraphics

struct ContentView: View {
    @State var currentPage: Int = 0

    var body: some View {
        iPages(selection: $currentPage) {
            iGraphicsBox(.photo)
                .stack(3)
            iGraphicsBox(.card)
                .stack(2)
        }
        .hideDots(true)
        .wraps(true)
    }
}

Customize
๐ŸŽ€

iPages takes a trailing view builder of ordered views. You can also optionally pass in your own page index binding called selection:, to let you build your own page control, or however you want to use it. iPages supports a variety of custom modifiers. All customizations are built into our modifiers.

Example: Change the dot colors, enable infinite wrap & hide dots for single page views with the following code block:

iPages(selection: $currentPage) {
    Text("๐Ÿ‘")
}
.dotsTintColors(currentPage: Color, otherPages: Color)
.wraps(true)
.dotsHideForSinglePage(true)
.navigationOrientation(.vertical)

Use our exhaustive input list to customize your views.

Modifier or Initializer Description

๐Ÿ‘ทโ€โ™€๏ธ

.init(content:) Initializes the page
๐Ÿ“ƒ

๐Ÿ“–
view.

๐Ÿ‘ทโ€โ™‚๏ธ

.init(selection:content:) Initializes the page
๐Ÿ“ƒ

๐Ÿ“–
view with a selection binding.

โบ

.hideDots(_:) Modifies whether or not the page view should include the standard page control dots. (โ€ขโ€ขโ€ขโ€ข)

๐Ÿ”„

.wraps(_:) Modifies whether or not the page view should restart at the beginning
๐Ÿ”
when swiping past the end (and vise-versa)

1๏ธโƒฃ

.dotsHideForSinglePage(_:) Modifies whether the page dots are hidden when there is only one page.
1๏ธโƒฃ

โคต๏ธ

๐ŸŽจ

.dotsTintColors(currentPage:otherPages:) Modifies tint colors
๐ŸŸก

๐ŸŸข

๐Ÿ”ด

๐ŸŸฃ
to be used for the page dots.

๐Ÿ”˜

.dotsBackgroundStyle(_:) Modifies the background style
โšช๏ธ

๐Ÿ”˜
of the page dots.

๐Ÿ”ƒ

.dotsAllowContinuousInteraction(_:) Modifies the continuous interaction settings of the dots.
๐Ÿ”„

โ†”๏ธ

.dotsAlignment(_:) Modifies the alignment of the page dots.
๐Ÿ‘†

๐Ÿ‘‡

โ†•๏ธ

.navigationOrientation(_:) Modifies the navigation orientation of the page view.
โ†”๏ธ

โ†•๏ธ

๐Ÿฆฟ

.disableBounce(_:) Disables the bounce settings of the page view. This is especially useful for scroll views.

โ†”๏ธ

.interPageSpacing(_:) Modifies the spacing between the pages.
โ†”๏ธ

๐ŸŽฅ

.animated(_:) Modifies whether the the pages animate the slide if the selection binding changes.
๐ŸŽฅ

Install

Use the Swift package manager to install. Find instructions here
๐Ÿ˜€

Help

As always, if you have any questions about iPages, we are available 24/7 to help.

Reach us at

๐Ÿ“ž

+1 (415) 735-4464 Call

๐Ÿ“ง

[email protected] Email

๐Ÿ“ฒ

+1 (415) 735-4464 Text

GitHub

https://github.com/benjaminsage/iPages