私は複数のタッチで簡単なアプリケーションを構築しようとしています。私はiOSとobjectivec/cocoaの初心者です。だから質問がとてもばかげているなら、ごめんなさい。touchBegin、touchEnd iPhone/iPadアイデンティティ
リリースされたフィンガーまたはすべてのフィンガーをユーザーが解放した後で、アクティブなフィンガー数を知りたい。私は注意したい、私は指がリリースされた正確に知る必要があります。最初の一見ではすべてが簡単だと思われますが、実際には問題が発生しています(
私は同時に3本の指を画面に置いて、しばらくしてから4本目の指を付けます。この場合、私のUIView.mファイルでは2つの 'touchesBegan' evensが呼び出されました。 最初のイベントではタッチの回数が3となり、2回目のタッチで= 4となります(これは合計ですカウンター)。このイベントは、すべてが明らかであるように思わ持つようにします。
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
NSSet *allTouches = [event allTouches];
NSArray *allObjects=[allTouches allObjects];
touchCount = [NSNumber numberWithInt:[allObjects count]]; // this is my main counter of current active touches.
NSLog(@"%d", touchCount.intValue);
}
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
//what I should do ????
}
のは、4つの部分に画面を分割してみましょう。iPadの画面上で4つの四角形を想像してみてください。
そして、この四角形の4つのブール変数を作成しましょう。 4つの四角形のすべてのステータスをストアする予定でしたか?デフォルトでは、すべての変数はfalseになります。
bool rectangle1 = false;
bool rectangle2 = false;
bool rectangle3 = false;
bool rectangle4 = false;
その後、指が下がると、 'touchesBegan'イベントでブール変数を変更します。どの変数を変更すべきか私はx-y座標で分かっています。だから私は矩形#2に私の指を置いて、次に私は矩形#4に別の指を置くとしましょう。この場合、変数は次のようになります。
bool rectangle1 = false;
bool rectangle2 = true;
bool rectangle3 = false;
bool rectangle4 = true;
これ以降、矩形#4から1本の指を離しています。だから、これは最初からリリースされた指であった「touchesEnded」イベントで私がどのように知ることができるのは、四角形#4の領域にあったのだろうか?
ありがとう、私はピアノロールを構築しようとしています。 – user1195202