Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

You can animate in individual views based on scroll position. Developed with SwiftUI. This library supports iOS/macOS.

License

Notifications You must be signed in to change notification settings

jasudev/Scroller

Repository files navigation

Scroller for SwiftUI

You can animate in individual views based on scroll position. Developed with SwiftUI. This library supports iOS/macOS.

Platforms iOS macOS instagram SPM MIT

Screenshot

Example Vertical Horizontal

Example

https://fabulaapp.page.link/222
https://fabulaapp.page.link/223

Usages

  1. Scroller

    Scroller(.vertical, value: $valueV) {
     ForEach(0...5, id: \.self) { index in
     GeometryReader { proxy in
     ScrollerVContent(value: proxy.scrollerValue(.vertical))
     }
     }
    } lastContent: {
     Rectangle()
     .fill(Color.blue)
     .overlay(Text("LastView"))
     .foregroundColor(Color.white)
    }
  2. Each view only needs to conform to the ScrollerContent protocol.

    struct ScrollerVContent: ScrollerContent {
     /// Bind each view's scroll-relative value. It is a value between 0 and 1.
     var value: CGFloat = 0
     
     var body: some View {
     GeometryReader { proxy in
     ScrollerInfoView(axes: .vertical, value: value, proxy: proxy)
     .offset(y: proxy.size.height * value)
     .padding(10)
     Rectangle().fill(Color.blue)
     .frame(width: proxy.size.width * value, height: 5)
     .offset(y: proxy.size.height * value)
     }
     .background(Color.orange.opacity(1.0 - value))
     }
    }

Swift Package Manager

The Swift Package Manager is a tool for automating the distribution of Swift code and is integrated into the swift compiler. Once you have your Swift package set up, adding Scroller as a dependency is as easy as adding it to the dependencies value of your Package.swift.

dependencies: [
 .package(url: "https://github.com/jasudev/Scroller.git", .branch("main"))
]

Contact

instagram : @dev.fabula
email : dev.fabula@gmail.com

License

Scroller is available under the MIT license. See the LICENSE file for more info.

About

You can animate in individual views based on scroll position. Developed with SwiftUI. This library supports iOS/macOS.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

Languages

AltStyle によって変換されたページ (->オリジナル) /