滑动方法被调用两次

时间:2011-09-02 09:24:43

标签: ipad uiswipegesturerecognizer

我必须在视图控制器中使用滑动功能。 因此,每当我刷卡时,我的刷卡方法被调用两次,我在(刷卡:)方法中写的NSlogs显示内容两次。

这是我使用的代码。

UIView *swipeView=[[UIView alloc]initWithFrame:CGRectMake(405, 420, 265, 35)];
    swipeView.backgroundColor=[UIColor clearColor];
    [self.view addSubview:swipeView];
    UISwipeGestureRecognizer *gesture;
    gesture=[[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swipe:)];
    [gesture setDirection:(UISwipeGestureRecognizerDirectionRight)];
    [swipeView addGestureRecognizer:gesture];
    [gesture release];
    [swipeView release];


 -(void)swipe:(UISwipeGestureRecognizer *)recognizer {
    NSLog(@"Swipe received.");
    NSLog(@"HIJ");
}

请告诉我,我只需要一次打电话。

2 个答案:

答案 0 :(得分:0)

这就是应该发生的事情。您需要查看state属性,您可以在其中找到UIGestureRecognizerStateBeganUIGestureRecognizerStateEnded等内容。

答案 1 :(得分:0)

试试这个,识别器有各种状态,如

UIGestureRecognizerStatePossible,
UIGestureRecognizerStateBegan,
UIGestureRecognizerStateChanged,
UIGestureRecognizerStateEnded,
UIGestureRecognizerStateCancelled,
UIGestureRecognizerStateFailed,
UIGestureRecognizerStateRecognized = UIGestureRecognizerStateEnded




-(void)swipe:(UISwipeGestureRecognizer *)recognizer {


    if (recognizer.state == UIGestureRecognizerStateEnded) {


        NSLog(@"Swipe received.");
        NSLog(@"HIJ");

    }
}