是否有一种方法可以访问Lottie动画开关的“ onTapGesture”(或类似名称)。我想在开关打开时更改CoreData项的属性(isComplete)。以下是我的彩票按钮视图。非常感谢。
import SwiftUI
import Lottie
struct LottieButton: UIViewRepresentable {
@State var task: Task
// Create a switch
let animationSwitch = AnimatedSwitch()
var filename = "checkmark"
func makeUIView(context: UIViewRepresentableContext<LottieButton>) -> UIView {
let view = UIView()
let animation = Animation.named(filename)
animationSwitch.animation = animation
animationSwitch.contentMode = .scaleAspectFit
animationSwitch.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(animationSwitch)
animationSwitch.clipsToBounds = false
animationSwitch.setProgressForState(fromProgress: 0, toProgress: 0.4, forOnState: true)
// fail attempt #1
// self.onTapGesture {
// self.task.isComplete.toggle()
// print(self.task.isComplete)
// }
// fail attempt #2
// if animationSwitch.isOn{
// task.isComplete.toggle()
// print(task.isComplete)
// action()
// }
NSLayoutConstraint.activate([
animationSwitch.heightAnchor.constraint(equalTo: view.heightAnchor),
animationSwitch.widthAnchor.constraint(equalTo: view.widthAnchor),
])
return view
}
func updateUIView(_ uiView: UIView, context: UIViewRepresentableContext<LottieButton>) {
}
}