2011-06-21 10 views
3

私はいくつかのサブビューを含むカスタムUITableViewCellを作成しました。ほとんどの場合、イベントを処理するためにUITableViewCellのコントローラが必要です。あるケースでは、サブビューでイベントを親UITableViewCellに渡し、割り当てられたデリゲートに対してdidSelectRowAtIndexPathを呼び出すようにします。UITableViewCellのサブビューをタップすると、選択イベント(didSelectRowAtIndexPath)が発生します

別の言い方をすると、私はサブビューを「イベントトランスペアレント」にしたいと思っています。イベントをオーバー/スルーして下位のセルに登録したいと思っています。

提案がありますか?他の言語では、私はイベントを起こすでしょう。 Objective-CとCocoaを初めて使用しましたが、まだGoogleで答えを見つけられませんでした。

ありがとうございます。

答えて

14

ビューのuserInteractionEnabledプロパティをNOに設定してみてください。

これにより、すべてのタッチイベントが無視され、その下のビューでこれらのイベントを捕捉できます。

+1

Doh!簡単すぎる。ありがとう! – ssokol

0

いくつかの方法は、私の心に来る:

私は信じているために翻訳「イベントを発生させる」あなたはNSNotificationNSNotificationCenterに見ることができた場合に通知を送ることであろう。ものすごく単純。

オプションで、UITableViewDelegateプロトコルに従うオブジェクトへの参照を各セルに追加することができます。セルを作成するときに、そのイベントを処理するオブジェクトにその参照を割り当て、サブビューがタップされたときにsendその参照へのメッセージdidSelectRowAtIndexPath

私は通知の大きなファンではないので、個人的には2番目のものを選択したいと思います。

関連する問題