AnimatedSwipeCard 是一个带有动画效果的自定义滑动卡片,可以与 confirmationDialog
或 alert
一起使用。
AnimatedSwipeCard 可以通过 Swift Package Manager 安装。
使用 AnimatedSwipeCard
很简单
struct ContentView: View {
@State var showCardAlert = false
@State var selectedText = ""
@State var bindingID = ""
@State var bindingText = ""
@State var bindingSubText = ""
var body: some View {
VStack {
List {
ForEach(RowItems, id:\.self){ item in
//add binding for a string for ID that can be passed
CardRowView(animationShakeAmount: 5.0,
titleText: item.text,
subText: item.subText,
cardID: String(bindingID),
color: "StatusCard",
imageName: "rocket_green",
showCardAlert: $showCardAlert,
bindingID: $bindingID,
bindingText: $bindingText,
bindingSubText: $bindingSubText)
.frame(height: 150)
.padding(.vertical)
.listRowBackground(Color.clear)
}
}
.alert(isPresented: $showCardAlert) {
Alert(
title: Text("Greatest Band Is: \(bindingText)"),
message: Text(bindingSubText)
)
}
}
.listStyle(.plain)
}
}
animationShakeAmount
- optional
: 可选参数:数值越高,卡片的角度越大。默认为 5.0swipeScale
- optional
: Double
可选参数:缩放卡片,默认为 0.8titleText
: String
主文本subText
: String
副文本cardID
- optional
: String
可选参数:传递的 IDcolor
- optional
: String
可选参数:作为字符串的资源颜色imageName
- optional
: String
可选参数:作为字符串的图片名称,用于卡片中imageHeight
- optional
: CGFloat
可选参数:图片高度。默认为 50imageHeight
- optional
: CGFloat
可选参数:图片宽度。默认为 50showCardAlert
: Bool
用于显示 alert 的状态绑定参数可以与 alert
或 confirmationDialog
一起使用。
bindingID
: String
传递状态以存储 ID。bindingText
: String
传递状态以存储文本。这可能与 titleText 相同。bindingSubText
: String
传递状态以存储文本。这可能与 subText 相同。 .alert(isPresented:$showCardAlert) {
Alert(
title: Text("Are you sure you want to delete \(bindingText)?"),
message: Text("There is no undo"),
primaryButton: .destructive(Text("Delete")) {
deleteitem(bindingID)
},
secondaryButton: .cancel()
)
}
感谢 https://lukaszadam.com/ 提供的火箭图片
Rob Evans, robert.evansii@gmail.com
CloudKitStatus 在 MIT 许可下可用。请参阅 LICENSE 文件以获取更多信息。