題名の通りですが touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?)を使って何本指でタッチされているか検出したいです。
1本指でタッチした所に図形を作り、2本指のピンチで拡大縮小を行うアプリを作っています。
2本指のピンチで拡大縮小機能を実装しました。
しかし、2本指でタッチしたら、どちらか一瞬早くタッチした方に図形が作られてしまいます。
タッチされた指の本数が検出できれば条件分岐で振り分けできると考えております。
ご教授、お願いします。
試したこと
公式ドキュメントでtouches、eventについて調べたが指の本数については記載がない。
@objc func pinchGesture(sender:UIPinchGestureRecognizer)は実装して拡大縮小ができています。
touches.count が指の数のはずですが、現実には複数の指が全く同時に触れるのは珍しいので、2 本めを検出した時点で 1 本指の操作をキャンセルして 2 本指での操作に切り替えるとかすると良いのでは。(例えば、1 本指が触れた瞬間に図形を生成するのではなく、1 本指を動かさず (完全に動かないことも珍しいので、一定の範囲の場合) に話した時に生成する、とかですね。普通のボタンとかも、指が触れた瞬間ではなく、離した時に処理を行う (指をボタンからずらして離した場合はキャンセルできる) のが普通です。)
回答ありがとうございます。返信が遅くなりました。
touches.countについてですが、シングルタップで1、ダブルタップで2トリプルタップで3となるようです。
”2本目が触れた時に操作を切り替えるを”を試してみます。
あなたの回答
tips
プレビュー