2

我以前http://www.raywenderlich.com/21842/how-to-make-a-gesture-driven-to-do-list-app-part-13的手勢識別添加到我的細胞,使我可以將它們從左至右,但我得到這個錯誤:添加UIGestureRecognizer到一個UITableViewCell

[UISwipeGestureRecognizer translationInView:]: unrecognized selector 

我甚至不使用刷卡識別器,所以我不知道現在要做什麼。

UIGestureRecognizer* recognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)]; 
recognizer.delegate = self; 
[self addGestureRecognizer:recognizer]; 

謝謝!

回答

0

看起來你的gestureRecognizerShouldBegin被調用的手勢不是你創建的UIPanGestureRecognizer。很顯然,你可以通過只是更改gestureRecognizerShouldBegin在你的子類進行測試,看它是否是一個平移手勢解決症狀:

-(BOOL)gestureRecognizerShouldBegin:(UIPanGestureRecognizer *)gestureRecognizer 
{ 
    if ([gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]) 
    { 
     CGPoint translation = [gestureRecognizer translationInView:gestureRecognizer.view]; 

     if (fabsf(translation.x) > fabsf(translation.y)) { 
      return YES; 
     } 
     return NO; 
    } 

    return NO; 
} 

上述修復只是解決症狀,雖然。真正的問題是如何調用UIGestureRecognizerDelegate方法gestureRecognizerShouldBegin以獲取除UIPanGestureRecognizer以外的手勢。遊戲中還可能有其他手勢(例如,如果您已實施canEditRowAtIndexPath,返回YES,即啓用滑動手勢),但我沒有看到自定義單元格將如何被識別爲該滑動手勢的代表。

我可以重現您的問題的唯一方法是通過手動向單元格(或表或視圖)添加滑動手勢。我知道你說你沒有使用滑動手勢,但也許有人偶爾在界面生成器中添加了類似的東西?我不知道,因爲我有麻煩,否則再現你描述的症狀。如果最壞的情況發生,您可以壓縮您的項目並與我們分享,我很樂意快速瀏覽。

相關問題