【Swift】[11]コンポーネントをスワイプで移動できるようにする方法

画面に表示されているコンポーネントをスワイプなどで動かすためには、

下記のコードを実装することによって実現することができます。


var currentPoint_x = 動かしたいコンポーネントの初期座標(x)
var currentPoint_y = 動かしたいコンポーネントの初期座標(y)

@objc func Move(_ sender:UIPanGestureRecognizer){
    switch(sender.state) {
    case .began:
        [動かしたいコンポーネント].layer.position = CGPoint(x: currentPoint_x, y: currentPoint_y)
        break
            
    case .changed:
        let differPoint = sender.translation(in: コンポーネントのsuperview)
            
       [動かしたいコンポーネント].layer.position = CGPoint(x: currentPoint_x + differPoint.x, y:currentPoint_y + differPoint.y)
        break
            
    case .ended:
        currentPoint_x = [動かしたいコンポーネント].layer.position.x
        currentPoint_y = [動かしたいコンポーネント].layer.position.y
        break
    default:
        break
    }
}

このように各コンポーネントに対してスワイプをした時に指についてくるように移動させたい場合には、上記のUIPanGestureRecognizer()の実装を行えば出来ます。

上記のコードだけでは、どのコンポーネントに対してこの機能を持たせるか宣言されていないので、下記のコードも適切な関数内に記載して下さい。

let Movegesture = UIPanGestureRecognizer(target: self, action: #selector([上記UIPanGestureRecognizerを記載したクラス名].move(_:)))
[コンポーネント].addGestureRecognizer(Movegesture)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です