UIGestureRecognizer
クラスのジェスチャーを追跡するためにカスタムサブクラスを使用していInfoView
ます。このクラスは、と呼ばれるカスタムサブクラスInfoView
のサブビューです。UITableViewCell
InfoCell
ルートビューにジェスチャレコグナイザーを追加しました(カスタムジェスチャレコグナイザーの目的はInfoCell
テーブル間でビューをドラッグできるようにすることであるため、画面上の他のすべての親ビューです)。これで、1つを除いて、すべてが正常に機能します。サブクラスで次のコードを使用して、ビューUIGestureRecognizer
のタッチを検出しています。InfoView
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UIView *touchView = [[touches anyObject] view];
if ([touchView isKindOfClass:[InfoView class]]) {
// Do stuff
}
ここでの問題は、オブジェクトへのタッチがインターセプトされているため、の親ビューであるを含むInfoView
に転送されていないことです。これは、ビューをドラッグしてテーブルビューをスクロールできなくなったことを意味します。これは、カバーが全体をカバーしているため、問題になります。UITableView
InfoCell
InfoView
InfoView
InfoView
InfoCell
タッチをテーブルビューに転送してスクロールできるようにする方法はありますか?私はすでにたくさんのことを試しました:
[super touchesBegan:touches withEvent:event];
[touchView.superview.superview touchesBegan:touches withEvent:event];
(touchView.superview.superview
その親への参照を取得しますUITableView
)
しかし、これまでのところ何も機能していません。また、cancelsTouchesInView
私のプロパティUIGestureRecognizer
はに設定されてNO
いるので、タッチに干渉しません。
ヘルプをいただければ幸いです。ありがとう!