JWAutumn / ACarousel

A carousel view for SwiftUI | SwiftUI 旋转木马效果
MIT License
406 stars 81 forks source link
carousel image image-scroll ios scroll swift swift5 swiftui

ACarousel

A carousel view for SwiftUI

中文文档

   

Table of Contents

Requirements

Install

Swift Package Manager

Open Xcode, go to File -> Swift Packages -> Add Package Dependency and enter https://github.com/JWAutumn/ACarousel

You can also add ACarousel as a dependency to your Package.swift:

dependencies: [
  .package(url: "https://github.com/JWAutumn/ACarousel", from: "0.2.0")
]

Manually

Download and open the project, drag the ACarousel.swift file into your own project.

Usage

let roles = ["Luffy", "Zoro", "Sanji", "Nami", "Usopp", "Chopper", "Robin", "Franky", "Brook"]

struct ContentView: View {

let items: [Item] = roles.map { Item(image: Image($0)) }

var body: some View {
    ACarousel(items) { item in
        item.image
            .resizable()
            .scaledToFill()
            .frame(height: 300)
            .cornerRadius(30)
    }
    .frame(height: 300)
}

}

or:
```swift
...
var body: some View {
    ACarousel(roles, id: \.self) { name in
        Image(name)
            .resizable()
            .scaledToFill()
            .frame(height: 300)
            .cornerRadius(30)
    }
    .frame(height: 300)
}
...

struct ContentView: View {

let items: [Item] = roles.map { Item(image: Image($0)) }

var body: some View {
    ACarousel(items,
              spacing: 10,
              headspace: 10,
              sidesScaling: 0.7,
              isWrap: true,
              autoScroll: .active(2)) { item in
        item.image
            .resizable()
            .scaledToFill()
            .frame(height: 300)
            .cornerRadius(30)
    }
    .frame(height: 300)
}

}



## Example
[Download](https://github.com/JWAutumn/ACarousel/archive/main.zip) and open `ACarouselDemo -> ACarouselDemo.xcodeproj`, run and view.

## Maintainers

[@JWAutumn](https://github.com/JWAutumn),[@Underthestars-zhy](https://github.com/underthestars-zhy), [@Alexander Chapliuk](https://github.com/krin-san),[@thitran-incepit](https://github.com/thitran-incepit).

## Contributing

Feel free to dive in! [Open an issue](https://github.com/JWAutumn/ACarousel/issues/new) or submit PRs.

## License

[MIT](LICENSE) © JWAutumn