2016-10-11 9 views
0

私はこのコードを持っていますが、これは循環路を行っていますが、私が必要とするのは直線です。私はこれをしようとしましたが失敗しました。スウィフトの直線パス

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") 
} 

以上1つの質問これを行う方法は終了すると消えます。

ありがとうございました

答えて

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を作成して、ラインのパスを定義します。 第3に、ベジェパスを開始点に移動します。 第4に、ベジェパスの終点を追加します。 5番目に、CAShapeLayerにベジェパスを適用します。 第6に、ストロークカラーを適用して、ラインをサブレイヤとして追加するときにそのラインを表示できるようにします。 最後に、ビューのサブレイヤです。

+0

私はこれをどこに置いたのですか?私は直線を描くべきではありません私は直線でオブジェクトを移動したいので、私はPLSを助けることができます。ありがとう – dinis

+0

はすでにおかげさまで – dinis

関連する問題