0

UIView のダブルタップを認識するものを作成しました。アクションはセレクターを介して送信されます。ただし、ダブルタップは一度しか登録されません。複数回実行したい。修正方法としては、登録タップ数を0に戻すか、タイマーなどを使うとよいと思います。私はすべての答えに感謝します、ありがとう。

UITapGestureRecognizer *DoubleClick = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(DoubleClickRegistered:)];
    DobbelKlikk.numberOfTapsRequired = 2;
    [self.view addGestureRecognizer:DobbelKlikk];
4

1 に答える 1

3

これが機能することを確認できるように、これを抽象化しました。問題は、セレクターとは関係のないものですUITapGestureRecognizer

UITapGestureRecognizer *tapRecog = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(weeee)];
tapRecog.numberOfTapsRequired = 2;

[self.view addGestureRecognizer:tapRecog];

- (void)weeee
{
    NSLog(@"Two taps");
    self.wee = !self.wee;

    if (!self.wee) {
        self.view.backgroundColor = [UIColor redColor];
        NSLog(@"Wee is false");
    } else {
        self.view.backgroundColor = [UIColor whiteColor];
        NSLog(@"Wee is true");
    }
}

それをプロジェクトに追加すると( のBOOLプロパティを含めてweeに設定するとviewDidLoad)、ダブルタップするたびに背景色が変わります。

コードに関しては、いくつかのブレークポイントを設定し、設定されている値と設定されている値を把握することをお勧めします。どこかで、あなたが期待していたように起こっていないことがあります。たとえば、isTorchActive決して true でない場合は、常に白に切り替わります。どこに設定しているのかわかりませんが、おそらくそれが問題です。

于 2013-11-14T21:00:51.530 に答える