/InfiniteScroller

Horizontal and Vertical collection view for infinite scrolling that was designed to be used in SwiftUI

Primary LanguageSwiftMIT LicenseMIT

InfiniteScroller

Swift Version License SwiftPM compatible PRs Welcome

Example

struct ContentView: View {
    @State var selected: Int = 1
    var body: some View {
        InfiniteScroller(direction: .vertical(height: 50), items: [1,2,3,4], 
        selectedItem: $selected, visibleCells: 3, cellSpacing: 0) { Text("\($0)") }
    }
}

and you good to go. But if something doesn't go well, you can always clone the repo and check 'Example' folder

Updating

If you need to update cells which has already been loaded, you can enable this feature by passing 'updating' argument to the constructor of InfiniteScroller and setting it to true. Recommended to be disabled if you don't need this feature

How it works?

It uses InfiniteLayout library(https://github.com/arnauddorgans/InfiniteLayout) underneath, so you can extend its functionality

Installation

Swift Package Manager

Select File > Swift Packages > Add Package Dependency and enter https://github.com/cointowitcher/InfiniteScroller.git

Known issues

  • Items aren't displayed correctly if the amount of the items is less or equal to visibleCells parameter. So, make sure to pass more items than visible cells

Contribute

We would love you to contribute to this project, the project is opened for modifications.

License

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