Есть ли способ добавить действие к анимированному переключателю Lott ie в SwiftUI? - PullRequest
0 голосов
/ 25 апреля 2020

Есть ли способ получить доступ к onTapGesture (или аналогичному) для анимированного переключателя лотоса ie. Я хотел бы изменить свойство (isComplete) элемента CoreData, когда переключатель включен. Ниже моя кнопка Lott ie. Большое спасибо.

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>) {

    }
}
...