7
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

私は現在1つのオブジェクトを取得しています

touches 

2 本の指で同時にタップすると (オプション キーを押しながらシミュレーターをクリックします)。これは、有効にしていないためだと思います

multipleTouchEnabled 

添付ビューのプロパティ。このイベントをマルチタッチに登録しないようにしたいです。

問題を調べると、multipleTouchEnabled を有効にしてから実行するとうまくいくようです。

if ([touches count] > 1) {
    return;
}

私の中で

touchesBegan:

ただし、複数のタッチを無効にするために multipleTouchEnabled を有効にしており、副作用があるかどうか心配しているという点で、これは奇妙に思えます。私の問題を解決するためのより良い方法はありますか?

4

5 に答える 5

2

ビューのマルチタッチプロパティを無効にできるはずです。IBでは、実際にサイドパネルに移動し、ファイル所有者の横にある[ビュー]と表示されているものをクリックして取得し、チェックを外す必要があります。 viewdidloadのコードでそれ:

self.view.multiTouchEnabled = NO;

于 2013-02-19T09:25:22.380 に答える
1

まず、ビューにジェスチャレコグナイザーを追加します。

UITapGestureRecognizer *multipleTouches = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleMultiTap:)];
multipleTouches.numberOfTouchesRequired = 2;
[yourViewName addGestureRecognizer:multipleTouches];
[multipleTouches release];

それがあなたを助けることを願っています。

于 2013-02-18T06:13:05.203 に答える
0

NSTouchesの使用が義務付けられている場合は、次の方法を使用して、目的のタスクを実行できます。

[view setMultipleTouchEnabled:NO];
[view setExclusiveTouch:YES];

もっとあなたは遊ぶことができます

setMultipleTouchEnabled:

維持することによって

ビューのsetExclusiveTouchをYESに

于 2013-02-15T00:08:12.280 に答える
0

この行を使用して、ある時点での複数のタッチを回避し、排他的なタッチを「はい」に設定します。

[self.view setExclusiveTouch:YES];
于 2016-08-24T09:22:45.687 に答える
0

ジェスチャ認識エンジンを使用できます。これは、コードが機能する場合でも、おそらく touches デリゲートよりも読み取り可能です。

UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(myAction:)];
gestureRecognizer.numberOfTouchesRequired = 2;
于 2013-02-11T22:29:09.147 に答える