Swiftpack.co -  benjaminsage/iPages as Swift Package
Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
benjaminsage/iPages
Quickly implement swipable page views.
.package(url: "https://github.com/benjaminsage/iPages.git", from: "0.0.13")

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
πŸ“§ hello@iswiftui.com Email
πŸ“² +1 (415) 735-4464 Text

GitHub

link
Stars: 136
Last commit: 3 days ago

Ad: Job Offers

iOS Software Engineer @ Perry Street Software
Perry Street Software is Jack’d and SCRUFF. We are two of the world’s largest gay, bi, trans and queer social dating apps on iOS and Android. Our brands reach more than 20 million members worldwide so members can connect, meet and express themselves on a platform that prioritizes privacy and security. We invest heavily into SwiftUI and using Swift Packages to modularize the codebase.

Release Notes

Removed Extraneous Dependencies
23 weeks ago

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API