请参考ACarousel:https://github.com/JWAutumn/ACarousel
SwiftUI
旋转木马效果
- iOS 13.0+ / macOS 10.15+ / tvOS 13.0+
- Xcode 11.0+
- Swift 5.1+
打开 Xcode
, 选择 File -> Swift Packages -> Add Package Dependency
,输入 https://github.com/JWAutumn/ACarousel
也可以将 ACarousel
作为依赖添加项到你的 Package.swift
中:
dependencies: [
.package(url: "https://github.com/JWAutumn/ACarousel", from: "0.2.0")
]
下载并打开项目,把 ACarousel.swift
文件拖入到你自己的项目当中。
当然,你也可以根据特定需求修改代码。
- 基础使用:
ACarousel
的参数有默认值,你只需要简单的传入数据源即可食用~
struct Item: Identifiable {
let id = UUID()
let image: Image
}
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)
}
}
或者:
...
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)
}
}
下载项目,打开 ACarouselDemo -> ACarouselDemo.xcodeproj
运行并查看
@JWAutumn,@Underthestars-zhy, @Alexander Chapliuk,@thitran-incepit。
非常欢迎你的加入!提一个 Issue 或者提交一个 Pull Request。
MIT © JWAutumn