カードゲームを書いています。ユーザーが手札のカードに触れると、手札に最大18枚のカードを置くことができ、カードが小さいため、触れているカードが少しスライドして、どちらのカードに触れているかがわかります。次に欲しいのは、ユーザーがカードを上にスワイプして再生できるようにすることです。
を使用しようとしましたUISwipeGestureRecognizer
が、ユーザーが最初に画面に触れたときに一時停止する可能性があるため(右側のカードがスライドアウトすることを確認するため)、スワイプとして認識されないことがよくあります。ユーザーは、指を隣接するカードにスライドさせてからスワイプすることもできます。つまり、ジェスチャはタッチが開始されたUIViewでのみ認識されるため、これは別の問題です。
私が考えることができる最善の方法はUIPanGestureRecognizer
、親ビュー(すべてのカードを含むUIView)でを使用することです。その速度を使用して、スワイプと見なすかどうかを決定できます。どのカードがスワイプされたかを検出するには、設定cancelsTouchesInView
してNO
、それでもなどを使用する必要があります。touchesBegan
もっと良い方法はありますか?