我必须在视图控制器中使用滑动功能。 因此,每当我刷卡时,我的刷卡方法被调用两次,我在(刷卡:)方法中写的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");
}
请告诉我,我只需要一次打电话。
答案 0 :(得分:0)
这就是应该发生的事情。您需要查看state
属性,您可以在其中找到UIGestureRecognizerStateBegan
和UIGestureRecognizerStateEnded
等内容。
答案 1 :(得分:0)
试试这个,识别器有各种状态,如
UIGestureRecognizerStatePossible,
UIGestureRecognizerStateBegan,
UIGestureRecognizerStateChanged,
UIGestureRecognizerStateEnded,
UIGestureRecognizerStateCancelled,
UIGestureRecognizerStateFailed,
UIGestureRecognizerStateRecognized = UIGestureRecognizerStateEnded
-(void)swipe:(UISwipeGestureRecognizer *)recognizer {
if (recognizer.state == UIGestureRecognizerStateEnded) {
NSLog(@"Swipe received.");
NSLog(@"HIJ");
}
}