13

cellForRowAtIndexPath如何将滑动手势添加到UITableView单元格?

UISwipeGestureRecognizer *gestureR = [[UISwipeGestureRecognizer alloc] 
              initWithTarget:self action:@selector(handleSwipeFrom:)]; 
     [gestureR setDirection:UISwipeGestureRecognizerDirectionRight];//|UISwipeGestureRecognizerDirectionRight)]; 
     [cell addGestureRecognizer:gestureR]; 

加入这个代码,它工作正常。但我想UISwipeGestureRecognizerDirectionLeft所以添加这样

[gestureR setDirection:UISwipeGestureRecognizerDirectionLeft|UISwipeGestureRecognizerDirectionRight)]; 

当我方向和状态,我总是得到3 = 3

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

    NSLog(@"%d = %d",recognizer.direction,recognizer.state); 
} 

,如果我只应用一个手势它工作正常检查。我试图一个一个添加两个手势。但它只会响应一个手势。

如何添加第二个手势。我直接添加到一个手势到TableView另一个手机,但现在使用。

回答

23

如果你想处理的左右挥动不同的功能试试这个

 
UISwipeGestureRecognizer* gestureR; 
gestureR = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom)] autorelease]; 
gestureR.direction = UISwipeGestureRecognizerDirectionLeft; 
[view addGestureRecognizer:gestureR]; 

gestureR = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom)] autorelease]; 
gestureR.direction = UISwipeGestureRecognizerDirectionRight; // default 
[view addGestureRecognizer:gestureR]; 

,只是改变了选择。

+0

谢谢,已经尝试过上面这样,但没有与不同的功能(选择器)..我试着让你知道... +1 – 2011-12-19 16:34:08

5

我知道自从你问这个问题以来它已经过时了。 但请尝试在您的问题中再次阅读以下行。 [gestureR setDirection:UISwipeGestureRecognizerDirectionRight|UISwipeGestureRecognizerDirectionRight)];

您是否意识到您添加了UISwipeGestureRecognizerDirectionRight。两次!!

:d

+0

是的..很棒的..我的这只是打字问题..我再次更新Q .. – 2013-05-10 07:42:26

+0

谢谢。对于刚刚记录的'[gestureR setDirection:UISwipeGestureRecognizerDirectionLeft | UISwipeGestureRecognizerDirectionRight]];'很好。在Xcode 4.6.2上试过并测试过 – holierthanthou84 2013-05-10 10:14:17

7

而不是两次页头,这将是,如果你使用

UISwipeGestureRecognizer* recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipe:)]; 
[recognizer setDirection:UISwipeGestureRecognizerDirectionLeft+UISwipeGestureRecognizerDirectionRight]; 
[cell addGestureRecognizer:recognizer]; 

更好,让划动的方向在行动:

-(void)handleSwipe:(UISwipeGestureRecognizer *) sender 
{ 
    if (sender.direction == UISwipeGestureRecognizerDirectionLeft) 
    { 
    //do something 
    } 
    else //if (sender.direction == UISwipeGestureRecognizerDirectionRight) 
    { 
    //do something 
    } 
} 
相关问题