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 文件以获取更多信息。