質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

0回答

469閲覧

touchesBeganを使って何本指でタッチされたか検出したい。

AppDvl

総合スコア58

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2021/11/07 02:51

題名の通りですが touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?)を使って何本指でタッチされているか検出したいです。

1本指でタッチした所に図形を作り、2本指のピンチで拡大縮小を行うアプリを作っています。
2本指のピンチで拡大縮小機能を実装しました。
しかし、2本指でタッチしたら、どちらか一瞬早くタッチした方に図形が作られてしまいます。
タッチされた指の本数が検出できれば条件分岐で振り分けできると考えております。
ご教授、お願いします。

試したこと
公式ドキュメントでtouches、eventについて調べたが指の本数については記載がない。
@objc func pinchGesture(sender:UIPinchGestureRecognizer)は実装して拡大縮小ができています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2021/11/07 06:35

touches.count が指の数のはずですが、現実には複数の指が全く同時に触れるのは珍しいので、2 本めを検出した時点で 1 本指の操作をキャンセルして 2 本指での操作に切り替えるとかすると良いのでは。(例えば、1 本指が触れた瞬間に図形を生成するのではなく、1 本指を動かさず (完全に動かないことも珍しいので、一定の範囲の場合) に話した時に生成する、とかですね。普通のボタンとかも、指が触れた瞬間ではなく、離した時に処理を行う (指をボタンからずらして離した場合はキャンセルできる) のが普通です。)
AppDvl

2021/11/21 00:54

回答ありがとうございます。返信が遅くなりました。 touches.countについてですが、シングルタップで1、ダブルタップで2トリプルタップで3となるようです。 ”2本目が触れた時に操作を切り替えるを”を試してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問