2

ビューでタップジェスチャと長押しジェスチャを一緒に使用したい。しかし、私の問題は、タップでタップジェスチャーアクションを実行できないことです。しかし、長押しジェスチャは正常に機能しています。

これがコードスニペットです。

            UILongPressGestureRecognizer *longPressGesture=[[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(ontappLongPressGesture:)];
            longPressGesture.minimumPressDuration=0.6;

            longPressGesture.delegate=self;
            [cell.view addGestureRecognizer:longPressGesture];

            UITapGestureRecognizer *gesture=[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(cellSelected:)];
            //[gesture requireGestureRecognizerToFail:longPressGesture]; //I have tried with this line also but not working
            gesture.delegate=self;
            [cell.view addGestureRecognizer:gesture];

また、デリゲートメソッドも設定しました

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
return YES;
}

このメソッドは長押しで呼び出されています

- (void)ontappLongPressGesture:(id)sender{

    //Long press code here

}

しかし、このメソッドはタップで呼び出されません

-(void)cellSelected:(id)sender {

     //Single tap code here

}
4

2 に答える 2

4

これらのgestureRecognizerを配置するビューのタイプを指定していませんが、「セル」と呼んでいるため、UITableViewにあると想定していますか?

cancelsTouchesInViewその場合は、フラグを設定する必要があります。

gesture.cancelsTouchesInView=NO;
于 2013-07-28T20:07:44.417 に答える