有没有一种方法可以在SwiftUI中向Lottie动画开关添加动作

时间:2020-04-25 18:22:08

标签: swift swiftui lottie

是否有一种方法可以访问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>) {

    }
}

0 个答案:

没有答案