У меня есть один анимации, которая оживляет маску слоя успешно:Два CABasicAnimations на двух разных слоях Одновременно
// create new animation
let anim = CABasicAnimation(keyPath: "path")
anim.delegate = self
anim.fromValue = self.maskLayerMWB.path
anim.toValue = path2.CGPath
anim.duration = 0.2
anim.timingFunction = CAMediaTimingFunction(controlPoints: 0, 1, 1, 1)
self.maskLayerMWB.addAnimation(anim, forKey: nil)
CATransaction.begin()
CATransaction.setDisableActions(true)
self.maskLayerMWB.path = path2.CGPath
CATransaction.commit()
Выше работает отлично. Однако сразу после этого мне нужно добавить еще один CABasicAnimation, который применяется к другому CAShapeLayer.
Однако, когда я добавляю их вместе следующим образом, вторая анимация не живой, только первый делает:
// create new animation
let anim = CABasicAnimation(keyPath: "path")
anim.delegate = self
anim.fromValue = self.maskLayer.path
anim.toValue = path2.CGPath
anim.duration = 0.2
self.maskLayer.addAnimation(anim, forKey: nil)
//Create second Animation
let anim2 = CABasicAnimation(keyPath: "path")
anim2.delegate = self
anim2.fromValue = self.shapeLayer.path
anim2.toValue = path2.CGPath
anim2.duration = 0.2
self.shapeLayer.addAnimation(anim2, forKey: nil)
CATransaction.begin()
CATransaction.setDisableActions(true)
self.maskLayer.path = path2.CGPath
self.shapeLayer.path = path2.CGPath
CATransaction.commit()
мне нужны обе анимации происходят одновременно.
Что "не работает"? – matt
Еще раз. Вторая анимация не оживляет, она просто переходит к окончательному значению (форме). – Gizmodo
Удалите начало и фиксацию и переместите три строки, которые они содержат, в начало. – matt