2017-05-06 16 views
1

移動するオブジェクトの領域を制限する方法はありますか?
白い円が緑色の円の周りを動くようにしたい[スクリーンベロー](女性を追跡するClueアプリのように 周期サイクル)これを行う方法はありますか?私は円の半径について考えていましたが、その円の中心を決める方法は考えられません。限られたエリアでのみ画像を移動するにはどうすればよいですか?

enter image description here

import UIKit 

class MainViewController: UIViewController { 

    //OUTLETS 
    @IBOutlet weak var movingCircle: UIImageView! 

    @IBAction func touchMovingCircle(_ sender: UIPanGestureRecognizer) { 
     let translation = sender.translation(in: self.view) 

     if let view = sender.view{ 
      view.center = CGPoint(x:view.center.x + translation.x, y: view.center.y + translation.y) 
     } 

     let point = CGPoint(x: 0, y:0) 

     sender.setTranslation(point, in: self.view) 
    } 
} 
+0

パンの中心点(つまり、白丸のドラッグ)が常に緑の中に...ベジエパスかどうかを確認することができます。パス。その緑色の円がどのように描かれているかが本当に分かります。もう1つの方法は、あなたが言ったように、サークル "フレーム"の中心点であるサークル半径です。もう一度、それが描かれているかどうかに依存します。 – dfd

答えて

1

私はそれがより大きな円の中心にあるように、白丸のアンカーポイントを変更しようとしているお勧めします。それであなたは単にサークルを回転させるだけで、あなたが望む結果を得ることができます。

//Get the necessary y anchor point 
let yAnchor = largeCircleRadius/movingCircleDiameter 

movingCircle.layer = CGPoint(x: 0.5, y: yAnchor) 

これは正しいかもしれませんが、そのようなものです。次に、サークルの周りを移動するには、白い円の回転を設定するだけです。

値を混乱させる必要があるかもしれませんが、私はこれまで同様のことをしています。

関連する問題