Ios 对象的变换和反转动画

Ios 对象的变换和反转动画,ios,swift,Ios,Swift,我在viewDidLoad()中使用以下代码创建了一个简单的鱼动画[稍微修剪了一下]: let path = UIBezierPath() path.moveToPoint(CGPoint(x: xStart,y: yStart)) //func addCurveToPoint(_ endPoint: CGPoint, controlPoint1 controlPoint1: CGPoint, controlPoint2 controlPoint2: CGPoint)

我在viewDidLoad()中使用以下代码创建了一个简单的鱼动画[稍微修剪了一下]:

    let path = UIBezierPath()

    path.moveToPoint(CGPoint(x: xStart,y: yStart))

    //func addCurveToPoint(_ endPoint: CGPoint, controlPoint1 controlPoint1: CGPoint, controlPoint2 controlPoint2: CGPoint)
    path.addCurveToPoint(CGPoint(x: xEnd, y: 239), controlPoint1: CGPoint(x: 136, y: 373), controlPoint2: CGPoint(x: 200, y: 110))

    // create a new CAKeyframeAnimation that animates the objects position
    let anim = CAKeyframeAnimation(keyPath: "position")

    // set the animations path to our bezier curve
    anim.path = path.CGPath

    anim.rotationMode = kCAAnimationRotateAuto
    anim.repeatCount = Float.infinity
    anim.duration = 5.0
    imageView.layer.addAnimation(anim, forKey: "Go fishy!")

我现在的挑战是试图让鱼从屏幕的另一边游回来

本质上,游回同一条路径,但将鱼从右向左旋转(而不是从左向右,或沿y轴翻转)


解决这个问题的最佳方法是什么?我应该有两条鱼,一条朝着一条方向,另一条朝着另一条方向吗?如果是这样的话,我将如何延迟这两条鱼?我愿意接受更好的解决方案。

您可以在
x
轴上将鱼缩放到-1,然后以另一种方式运行动画。@EmilioPelaez因为我是swift的n00b,所以我尝试使用UIView.animatewithduration,在完成时它会进行转换,但失败了。我现在在“动画”中使用这种方法,但我不知道如何触发完成点并使用动画进行转换。