Я хочу анимировать вдоль bezierPath против часовой стрелки.CAKeyframeAnimation против часовой стрелки
На данный момент только код позволяет мне делать это по часовой стрелке.
let arrowHead = UIImageView()
arrowHead.image = UIImage(named: "arrowHead.png")
arrowHead.frame = CGRect(x: 55, y: 300, width: 12, height: 12)
let ovalPath = UIBezierPath(ovalInRect: CGRectMake(50, 240, 320, 240))
let ovalShapeLayer = CAShapeLayer()
ovalShapeLayer.fillColor = UIColor.clearColor().CGColor
ovalShapeLayer.strokeColor = UIColor.lightGrayColor().CGColor
ovalShapeLayer.lineWidth = 1.5
ovalShapeLayer.path = ovalPath.CGPath
self.view.layer.addSublayer(ovalShapeLayer)
let myKeyFrameAnimation = CAKeyframeAnimation(keyPath: "position")
myKeyFrameAnimation.path = ovalPath.CGPath
myKeyFrameAnimation.rotationMode = kCAAnimationRotateAuto
myKeyFrameAnimation.repeatCount = Float.infinity
myKeyFrameAnimation.duration = 6.0
// add the animation
arrowHead.layer.addAnimation(myKeyFrameAnimation, forKey: "animate position along path")
self.view.addSubview(arrowHead)
любые идеи?
спасибо. Вы случайно знаете, как вы можете иметь непрерывное движение? В данный момент анимация повторяется бесконечно, но есть короткая секундная пауза паузы, в то время как новая анимация перезапускается после предыдущего окончания. –
Если вы делаете дорожку выше, вам, вероятно, нужно ее закрыть. – jrturton
«Выше» как в вашем ответе, так и у меня? –