【Swift】[11]コンポーネントをスワイプで移動できるようにする方法 投稿日: 2018年10月24日2019年1月27日 投稿者: Ediie 画面に表示されているコンポーネントをスワイプなどで動かすためには、下記のコードを実装することによって実現することができます。 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) Related posts 【Swift】[24]UIScrollViewをスクロールした際の処理を定義する方法 【Swift】[5]「Could not launch [ iPhone名] has denied the launch request.」というエラーが出た時 【Swift】[28]ビルド実行直後の「Thread 1: signal SIGABRT」