0

テーブルビューセルでシングルタップとダブルタップを受け入れる必要があります。また、各セルにはタップ可能なラベルがあり、クリック可能なままにしておきたいと思います。これは、ユーザーがハッシュタグ以外の場所をクリックしたときにどうなるべきかとは別の、相互に作用する相互作用です。タップ可能なラベルを含むテーブルビューのセルでダブルタップとシングルタップを受け入れる

私はどのように私の言葉やGoogleの質問に応じて私は2つの異なる答えを得ることに気づいた。

溶液A: UITapGestureRecognizer - single tap and double tap その受け入れ答えは遅れて2つのタップジェスチャー認識装置を提案し、upvotesの高い番号を持っています。

ソリューションB. 短いタイマーと組み合わせるtableView:didSelectRowAtIndexPath:でタップカウンタを実装している私は、いくつかのスレッドで見てきた他のソリューション。これらのスレッドには受け入れられた答えとして多くのものがありますが、ソリューションAの答えと同じくらい多くのアップフォートがあります。

なぜ他のものが優れているのですか?

両方ソリューションとここでの問題は、ジェスチャーが私の帰属ラベルタップを吸う、と...didSelectRow...ソリューションは問題なく、複数のセルに迅速に火をタップからユーザーを防ぐことです。それは誤っており、エラーの余地が残る。

+0

私が書いたことの一言も読みましたか?私は文字通りこのEXACTスレッドとその多くのバリエーションを私の質問で言及しました。 – ChuckKelly

+0

両方の解決策の問題は、ジェスチャが自分の帰属ラベル#hashtagのクリックを吸い取って、didselectrowの解決策がユーザーが複数のステータスを好むのを防ぐことです。これを閉じることは、無責任な境界線となり、権力の乱用になるでしょう。それはよく考えられた質問と実際の問題です。 – ChuckKelly

答えて

0

2つのジェスチャーを持つことができます。魔法の行で

UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onClikOneTap:)]; 
tapGesture.numberOfTapsRequired = 1; 

UITapGestureRecognizer *doubleTapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onClikDoubleTap:)]; 
doubleTapGesture.numberOfTapsRequired = 2; 

制御

ため
[tapGesture requireGestureRecognizerToFail:doubleTapGesture]; 

これは、多くの場面で私のために非常によく働いています。

+0

コメントを含めて再読み込みしてください。このソリューションは帰属ラベルリンクのクリックを防ぎます – ChuckKelly

+0

私は、セルの同じサイズの各セル内に1つのビューを追加し、そのビューにジェスチャーを渡すと、 – jose920405

関連する問題