2017-03-21 2 views
0

Ich verwende Spring library für Animationseffekte in meiner App.In iOS "Spring" -Bibliothek für Animation, müssen wir jedes Mal vor dem Aufruf der "animate()" -Methode die "animation" -Eigenschaft setzen?

In meinem Fall muss ich eine Schaltfläche auf Aktion animieren, also habe ich die folgenden Codeblöcke hinzugefügt.

override func viewDidLoad() { 
    super.viewDidLoad() 
    setOptions() 
} 
func setOptions() { 
    testButton.animation = Spring.AnimationPreset.Shake.rawValue 
    testButton.curve = Spring.AnimationCurve.EaseIn.rawValue 
} 
@IBAction func testButtonPressed(_ sender: Any) { 
    animateView() 
} 

In diesem obigen Code fließen die Animation Aktion tritt nur einmal.

Aber wenn ich die "testButtonPressed" -Methode wie folgt aktualisieren,

@IBAction func testButtonPressed(_ sender: Any) { 
    setOptions() 
    animateView() 
} 

Die Animation tritt jedes Mal, wenn ich die testButton drücken.

Warum muss ich die Animationseigenschaft jedes Mal aktualisieren? Reicht es nicht aus, Eigenschaften nur einmal zu aktualisieren?

Antwort

0

In der Bibliothek scheint ResetAll den Animationstyp und alle Attribute nach der Ausführung der Animation zu entfernen. Diese Methode wird bei der Fertigstellung des Animationsblocks in der Spring-Datei aufgerufen.

Hier ist ein Link zu der Spring Datei in Frage sowie eine Kopie der Funktion, die die Animation entfernt.

func resetAll() { 
    x = 0 
    y = 0 
    animation = "" 
    opacity = 1 
    scaleX = 1 
    scaleY = 1 
    rotate = 0 
    damping = 0.7 
    velocity = 0.7 
    repeatCount = 1 
    delay = 0 
    duration = 0.7 
} 

hoffe, das hilft zu verstehen, warum die Animation entfernt wird, bis Sie den Animationstyp zurückgesetzt.