2016-10-11 48 views
0

我需要帮助我有这段代码这是做循环路径,但我需要的是直线我试图做到这一点,但不成功。swift中的直线路径

override func viewDidAppear(animated: Bool) { 



    super.viewDidAppear(animated) 

    let orbit = CAKeyframeAnimation(keyPath: "position") 
    var affineTransform = CGAffineTransformMakeRotation(0.0) 
    affineTransform = CGAffineTransformRotate(affineTransform, CGFloat(M_PI)) 
    let circlePath = UIBezierPath(arcCenter: CGPoint(x: 150 - (100/2),y: 150 - (100/2)), radius: CGFloat(150), startAngle: CGFloat(0), endAngle:CGFloat(M_PI * 2), clockwise: true) 

    orbit.circlePath = path.CGPath 
    orbit.duration = 8 
    orbit.additive = true 
    orbit.repeatCount = 0.25 
    orbit.calculationMode = kCAAnimationPaced 
    orbit.rotationMode = kCAAnimationRotateAuto 

    moveobj.layer .addAnimation(orbit, forKey: "orbit") 
} 

和更多的一个问题如何做到这一点后消失完成移动。

谢谢

回答

0

您可以使用CAShapeLayer轻松做到这一点。

let line = CAShapeLayer() 
    let linePath = UIBezierPath() 
    linePath.move(to: CGPoint(x: 100, y: 100)) 
    linePath.addLine(to: CGPoint(x: 300, y: 300)) 
    line.path = linePath.cgPath 
    line.strokeColor = UIColor.red.cgColor 
    self.view.layer.addSublayer(line) 

首先,创建一个CAShapeLayer。 其次,创建一个UIBezierPath来定义你的线路的路径。第三,将bezier路径移动到起始点。第四,添加贝塞尔路径的终点。第五步,将bezier路径应用于CAShapeLayer。 第六,应用笔触颜色,以便在将其添加为子图层时可以看到该线条。最后,添加它是视图的子图层。

+0

我把这个放在哪里?我不想画直线我想直线移动对象可以哟帮助我请。谢谢 – dinis

+0

已经解决了谢谢 – dinis