<Swift> UIImageViewをドラッグしてみた
環境
- Xcode7.2.2
- Swift 2.1.1
まずはデリゲートの宣言と動かすUIImageViewの作成
class playViewController: UIViewController, UIGestureRecognizerDelegate { @IBOutlet var moveImage: UIImageView! override func viewDidLoad() { super.viewDidLoad() myImg.frame = CGRectMake(120, 135, 80, 80) whiteImg.image = UIImage(named: "sample.png") //UIImageViewの移動を許可 myImg.userInteractionEnabled = true myImg.addSubview(self.view) let pan: UIGestureRecognizer = UIPanGestureRecognizer.init(target: self, action: "panAction:") myImg.addGestureRecognizer(pan) } }
続いてドラッグ中の処理を記述
func panAction(sender: UIPanGestureRecognizer) { //移動した位置の座標を取得 let point: CGPoint = sender.translationInView(self.view) //移動した座標のx,y座標を中心にする let movePoint = CGPointMake(productImg.center.x + point.x, productImg.center.y + point.y) productImg.center = movePoint print(movePoint) //移動距離の初期化 sender.setTranslation(CGPointZero, inView: self.view) if sender.state == UIGestureRecognizerState.Ended { print("移動終了") } }
これで終わりです。
おそらく動くと思います。