У меня есть вращающаяся анимация, и я хочу, чтобы анимация продолжалась из состояния, когда она нажата.Для этого я попробовал этот код:
if let presentation = plus.presentation() {
object.frame = presentation.frame
object.setValue(presentation.value(forKeyPath: animation.keyPath!), forKey: animation.keyPath!) // doesn't do much it seems
object.transform = presentation.transform
}
Но когда объект снова нажимается, он начинает вращаться с другого якоря, кажется:
(нормальный)
(при нажатии)
func rotateObject() {
let animation = CABasicAnimation(keyPath: "transform.rotation")
animation.toValue = CGFloat.pi * 2
let curve = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
animation.timingFunction = curve
animation.duration = 1.5
if let presentation = plus.presentation() {
object.frame = presentation.frame
object.setValue(presentation.value(forKeyPath: animation.keyPath!), forKey: animation.keyPath!)
object.transform = presentation.transform
}
object.removeAllAnimations()
object.add(animation, forKey: animation.keyPath)
}
Что я должен использовать, чтобы получить состояние от вращениякогда постучал?