我正在使用此代码沿着曲线移动UI
Image:
// paint curve for sun let path = UIBezierPath() let imageSunName = "small_sun.png" let imageSun = UIImage(named: imageSunName) let imageView = UIImageView(image: imageSun!) imageView.frame = CGRect(x: xStart,y: yStart,width: 24,height: 24) self.view.addSubview(imageView) path.movetoPoint(CGPoint(x: xStart,y: yStart)) path.addQuadCurvetoPoint(CGPoint(x: xEnd,y: yEnd),controlPoint: CGPoint(x: xMiddletop,y: yMiddletop)) let animation = CAKeyframeAnimation(keyPath: "position") animation.path = path.CGPath animation.repeatCount = 0 animation.duration = 5.0 imageView.layer.addAnimation(animation,forKey: "animate position along path")
尽管如此,还有两个问题:
>我想仅沿路径部分移动图像(根据当前时间对日出/日落) – 如何做到这一点?
>动画停止后图像跳转到原点位置 – 我该怎样避免这种情况?
干杯
为了避免跳到原来的位置,请添加:
animation.fillMode = kCAFillModeForwards animation.removedOnCompletion = false