Ich experimentiere mit dem Animieren von CAShapeLayer Wegen mit CASpringAnimation. Das erwartete Ergebnis ist ein "Morphing" zwischen Formen, die "federnd" wirken.CAShapeLayer Pfadfrühlingsanimation nicht "überschießend"
Ich habe ein grundlegendes Codebeispiel zwischen einem Kreis und einem quadratischen Pfad wie unten, jedoch ist das Endergebnis eine Federanimation, die nicht über den endgültigen, größeren quadratischen Pfad "hinausschießt", was das erwartete Verhalten ist.
Mein Code ist:
let springAnimation = CASpringAnimation(keyPath: "path")
springAnimation.damping = 1
springAnimation.duration = springAnimation.settlingDuration
springAnimation.fromValue = standardCirclePath().cgPath
springAnimation.toValue = standardSquarePath().cgPath
circleLayer.add(springAnimation, forKey: nil) // Where circleLayer (red background) is a sublayer of a basic UIView in the frame (blue background)
ich meine Wege from this answer bekam.
Gibt es einen Weg mit CASspringAnimation, um dies für eine CAShapeLayer Pfadtransformation zu erreichen? Welche Alternativen gibt es sonst?
Soweit ich weiß, kann 'CASspringAnimation' nicht verwendet werden, um Pfadanimationen zu überschwingen oder zu unterschwingen. Dies ist ein nicht-triviales Problem, und Core Animation scheint keine hochentwickelte Unterstützung für die automatische Pfadinterpolation zu haben. Um dieses Problem zu lösen, müssen Sie einige Pfad-Keyframes für die Überschreitungs- und Unterschwingungsstopps in Ihrer Animation hinzufügen. – LucasTizma