我使用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轴上翻转)。
解决这个问题的最佳方法是什么?我应该有两条鱼,一条面向一条,一条面向另一条?如果是这样,我将如何添加延迟以将这两条鱼分开?我愿意接受更好的解决方案。