我之前写过一篇文章,介绍如何让一个视图对象沿着指定的路径进行移动:Swift – 沿路径运动的动画实现(圆形、曲线、直线等路径轨迹)。
有网友问如何在对象运动的过程中,把经过的轨迹也绘制出来?这个其实只要使用 CAShapeLayer把路径显示出来,然后对其添加个 CABasicAnimation动画,让动画改变 strokeEnd就可以了。
1,效果图
(1)橙色方块沿着预先设置好的路线移动(先移动两段直线,再移动一段圆弧)
(2)在方块移动的过程中,其经过的轨迹也会实时显示出来。
2,样例代码
import UIKit
class ViewController: UIViewController {
//动画播放时间
var duration:CFTimeInterval = 3
//运动的方块
var square:UIView!
//绘制路线的图层
var pathLayer:CAShapeLayer!
override func viewDidLoad() {
super.viewDidLoad()
//初始化方块
square = UIView(frame:CGRect(x:0, y:0, width:20, height:20))
square.backgroundColor = UIC