2016-09-01 5 views
0

私は、スワイプしてアクションボタンを表示するUITableViewでシングルジェスチャースワイプアクションを実装しようとしていますが、スワイプしてデフォルトのアクションを有効にします(「削除"または" Mail as Read as ")。UITableViewシングルジェスチャー行スワイプアクション

私は代理人に-tableView:editActionsForRowAtIndexPath:を実装しています。私のボタンが表示され、それをタップすると機能しますが、フルスワイプでアクティブになるわけではありません。

私はデータソースに-tableView:commitEditingStyle:forRowAtIndexPath:-tableView:canEditRowAtIndexPath:を付けずに試してみました。後者だけが呼び出されますが、どちらも違いを生み出すとは思われません。

もっと必要なことはありますか?または、この動作は標準APIを使用して実際には達成できませんか?

答えて

0

スワイプがジェスチャ認識機能のターゲット機能で特定のしきい値を超えているかどうかを確認します。

は、私はスワイプボタンのカスタム実装をしていた場合でしょう。この

func swipeRight(sender: UIGestureRecognizer){ 
    let threshold : CGFloat = 100; 
    var startLocation = CGPoint() 
    if (sender.state == UIGestureRecognizerState.Began){ 
     startLocation = sender.locationInView(self.view) 
    }else if (sender.state == UIGestureRecognizerState.Ended){ 
     let stopLocation = sender.locationInView(self.view) 
     let distanceX = stopLocation.x - startLocation.x 
     let distanceY = stopLocation.y - startLocation.y 
     let distance = sqrt(distanceX*distanceX + distanceY*distanceY) 
     if (distance > threshold){ 
      //Delete or Edit Row Here 
     } 
    } 
} 
+0

を試してみてください。実際には、私はそれを(MGSwipeTableCellに基づいて)やっていますが、私はそのアプローチを標準のAPIに置き換えて、たくさんのコードを取り除くことができるかどうかを確認しようとしています。 'editActionsForRowAtIndexPath'を使用して、OSはジェスチャ認識プログラムを完全に処理します。 – Uncommon

関連する問題