swift gesture

12
GestureRecognizer を使ってみよう 株式会社デコレーションカンパニー 徳弘佑衣

Upload: yui-tokuhiro

Post on 16-Jul-2015

639 views

Category:

Technology


8 download

TRANSCRIPT

Page 1: Swift gesture

GestureRecognizerを使ってみよう

株式会社デコレーションカンパニー 徳弘佑衣

Page 2: Swift gesture

自己紹介• 株式会社デコレーションカンパニー代表

• ここCoEdoのスタッフです

• オリジナルのiPhoneケースが作れるアプリ「DesigningCase」運営

• iOS開発歴4年

• Swiftは苦手です

Page 3: Swift gesture

DesigningCase紹介

実際の動きを見てください( ✧Д✧)

デザイン ケース で検索!

Page 4: Swift gesture

今日やること• このアプリの中心になっているタッチで、移動&拡大・縮小&回転を紹介します!

サンプルを見てみよう

Page 5: Swift gesture

GestureRecognizerとは?

タッチイベントがいろいろできる! 例えば・・・ UITapGestureRecognizer タップ時のイベント UIPinchGestureRecognizer ピンチ時のイベント UIRotationGestureRecognizer 回転した時のイベント UISwipeGestureRecognizer スワイプした時のイベント UIPanGestureRecognizer パンした時のイベント UILongPressGestureRecognizer 長押しした際のイベント

Page 6: Swift gesture

実は簡単3ステップ①gestureの箱を作ります

②addGestureRecognizerを追加

③actionを描きましょう

以上♡

Page 7: Swift gesture

①gestureの箱を作りますoverride func viewDidLoad() { super.viewDidLoad() // ピンチ let myPinchGesture = UIPinchGestureRecognizer(target: self, action: "pinchGesture:") // 回転 let myRotate = UIRotationGestureRecognizer(target: self, action: “rotateGesture:") // パン(ドラック) let myPan = UIPanGestureRecognizer(target: self, action: "panGesture:")

}

Page 8: Swift gesture

②addGestureRecognizerを追加

override func viewDidLoad() { super.viewDidLoad()

~省略~ self.image.addGestureRecognizer(myPinchGesture) self.image.addGestureRecognizer(myPan) self.image.addGestureRecognizer(myRotate)

}

*imageは、storyboardで配置したUIImageViewを 関連付けしたもの

Page 9: Swift gesture

③actionを描きましょう ~拡大・縮小と回転~

//ピンチイベント(拡大・縮小) func pinchGesture(sender: UIPinchGestureRecognizer){ //imageviewのsetAffineTransformにscaleを渡す image.layer.setAffineTransform(CGAffineTransformMakeScale(sender.scale,sender.scale)) }

//ローテート(回転) func rotateGesture(sender:UIRotationGestureRecognizer{ //imageviewのsetAffineTransformにrotationを渡す image.layer.setAffineTransform(CGAffineTransformMakeRotation(sender.rotation)) }

Page 10: Swift gesture

③actionを描きましょう ~移動~       

//パン(移動) func panGesture(sender: UIPanGestureRecognizer){ //距離を取得 let p = sender.translationInView(self.view) //移動した距離だけ、UIImageViewのcenterポジションを移動させる let movedPoint = CGPointMake(image.center.x + p.x, image.center.y + p.y) //imageに渡す image.center = movedPoint //translationInViewが返す距離は、ドラッグが始まってからの蓄積値となるため、今回の場合は、蓄積値をゼロにする sender.setTranslation(CGPointZero, inView: self.view);

}

Page 11: Swift gesture

注意UIImageViewのUser Interaction Enabledにチェックを入れる!

Page 12: Swift gesture

今日のコード

https://github.com/TokuhiroYui/GuruGuru

ありがとうございました∩( ✧Д✧)∩