反時計回りに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
あなたの答えや鉱山のように「上」ですか? –