2011-04-19 138 views
10

我有一些麻烦来处理iPhone刷卡,我在界面中创建一个UISwipeGestureRecognizer VAR:轻扫手势iphone

UISwipeGestureRecognizer *swipeRecognizer; 

,并在我的控制器:viewDidLoad方法

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 


    // Horizontal swipe 
    swipeRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self 
                      action:@selector(swipeMethod:)]; 
    swipeRecognizer.direction = UISwipeGestureRecognizerDirectionRight | UISwipeGestureRecognizerDirectionLeft; 
    [self addGestureRecognizer:swipeRecognizer]; 
} 

而我的方法处理滑动是:

-(void)swipeMethod: (UISwipeGestureRecognizer *) sender 
{ 
    NSLog(@"Swipe!"); 
} 

当我运行我的代码和d o刷卡什么都没有?我应该得到:刷卡!

谢谢。

+0

不要将它添加到self,要么使用self.view(假设self是viewcontroller),要么使用子视图将手势识别器置于其上。您可以在放置识别器之前放置一个断点并查看它是否正确添加。看到我的答案左和右滑动检测:http://stackoverflow.com/a/16810160/936957 – 2013-05-29 09:32:21

回答

9

我很惊讶,不会因无法识别的选择器错误而崩溃。请尝试将识别到你的观点,而不是你的视图控制器:

[self.view addGestureRecognizer:swipeRecognizer] 
+0

谢谢,我也很惊讶,我把它添加到我的看法,仍然没有! – Lekhal 2011-04-19 15:01:40

0

swipeRecognizer.direction = UISwipeGestureRecognizerDirectionRight | UISwipeGestureRecognizerDirectionLeft;

这是行不通的?

你不需要为每个方向添加两个gestureRecognizer吗?

+0

不是。他们可以被OR'ed。如果你'跳到定义',你会看到这个。 '的typedef NS_OPTIONS(NSUInteger,UISwipeGestureRecognizerDirection){ UISwipeGestureRecognizerDirectionRight = 1 << 0, UISwipeGestureRecognizerDirectionLeft = 1 << 1, UISwipeGestureRecognizerDirectionUp = 1 << 2, UISwipeGestureRecognizerDirectionDown = 1 << 3 };' – cnotethegr8 2013-03-20 09:52:29