Programming language: Swift
License: GNU General Public License v3.0 only
Tags: UI     Pagination    
Latest version: v0.0.12

iPages alternatives and similar libraries

Based on the "Pagination" category.
Alternatively, view iPages alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of iPages or a related project?

Add another 'Pagination' Library


iPagesπŸ“– Quickly implement swipable page views in iOS. πŸ“

Get Started | Examples | Customize | Install |

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 } } }

3. Customize your `iPages`

## Examples
### Marketing Materials πŸ’Έ

<img align="right" src="https://iswiftui.com/assets/img/iPagesDemo2Light.gif" width="250">

Use `iGraphicsView` to demo marketing slides.

import SwiftUI
import iPages
import iGraphics

struct ContentView: View {
    var body: some View {
        iPages {

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) {

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) {
.dotsTintColors(currentPage: Color, otherPages: Color)

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. πŸŽ₯


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


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