2011-04-19 137 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