CAKeyframeAnimation逆时针

时间:2016-07-02 22:02:15

标签: ios swift2 cakeyframeanimation

我想逆时针沿bezierPath动画。

目前,下面的代码只允许我按顺时针方向进行。

        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)

任何想法?

2 个答案:

答案 0 :(得分:0)

好的,明白了。

myKeyFrameAnimation.speed = -1

非常简单......

答案 1 :(得分:0)

另一种解决方案是使用bezierPathWithArcCenter...作为记录的here,它允许您指定圆的方向。使用-M_PI_2作为起始角度,3 * M_PI_2作为结束角度,将在顶部开始和结束。