2009-05-31 22 views
5

私はcustomtableviewcellコントロールでスワイプジェスチャを実装しているので、touchesBeganイベントを実装することができます。 私はスワイプを実装できますが、残念ながらtouchesBeganがcustomcellで処理されるため、テーブルコントローラでdidSelectRowAtIndexPathメッセージが表示されません。 touchesBeganメソッドが無効な場合、それは機能します。UITableViewCellでtouchesBeganを処理するとdidSelectRowAtIndexPathが無効になる

これはどのように処理する必要がありますか? touchesBeganが処理された後、タッチイベントがレスポンダーチェーンの上にバブルアップするようにします。これどうやってするの?

ありがとうございました。

答えて

12

私は「あなたが以前のスーパークラスで定義されたメソッドをオーバーライドしているので、あなたはこれが起こっていることがわかります確信している。そうすることによってイベントが呼び出されていないことを意味します。

あなたは試してみましたそのように、すべての上流のものが処理されますか[スーパーtouchesBegan]を呼び出す。そして、あなたがスワイプジェスチャを無効にすることができます。

または別のオプションは、タッチが独自のタッチ方式で検出されたときに、デリゲートを呼び出すことです。

何かあなたはおそらく他のタッチイベントの実装も持っています)

-(void) touchesBegan 
{ 
//logic to detect tap only. 
[tablecell.delegate didSelectRowAtIndexPath:(some way to determin touched row)] 
} 
+6

[super touchesBegan]は正しい方法です。 – amattn

+0

ありがとう、それは働いた。 – Mugunth

+0

問題なく、どのメソッドを使用しましたか?回答ポイント – Bluephlame

関連する問題