Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/blsage/iPages

Quickly implement swipable page views.
https://github.com/blsage/iPages

Last synced: about 2 months ago
JSON representation

Quickly implement swipable page views.

Awesome Lists containing this project

README

        

iPagesπŸ“–

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


Get Started |
Examples |
Customize |
Install |



CI


## Get Started

1. [Install](https://github.com/benjaminsage/iPages/blob/main/INSTALL.md) `iPages`

2. Add `iPages` to your project
```swift
import SwiftUI
import iPages

struct ContentView: View {
var body: some View {
iPages {
Text("iPages πŸ€‘")
Color.pink
}
}
}
```

3. Customize your `iPages`

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

Use `iGraphicsView` to demo marketing slides.

```swift
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.

```swift
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:
```swift
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](https://github.com/benjaminsage/iPages/blob/main/INSTALL.md)πŸ˜€