2

カスタムUIViewからその下のUITableViewにタッチを渡そうとしています(UIViewはUITableViewの真上にあります)。ただし、機能していないようです。

カスタムUIViewで、次のすべてを試しました(例としてtouchesMovedを使用していますが、4つのタッチメソッドすべてにこれを実装しました)

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event 
 {
  [self.nextResponder touchesMoved:touches withEvent:event];
 }

 - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {  [super
 touchesMoved:touches withEvent:event];
 }

UITableViewへのポインターをカスタムUIViewに直接渡して、これを実行しようとしました。

 - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
  [self.myTableView touchesMoved:touches withEvent:event];
 }

UITableViewをスクロールできないため、これらのオプションはどれも何もしないようです。これがうまくいかない理由はありますか?

4

1 に答える 1

1

UIViewがUITableViewのサブビューでない場合、UITableViewへのレスポンダーチェーンのタッチアップに渡されません。

ただし、最も可能性の高い原因はスクロールビューです。スクロールビューは、サブビューに送信する前にすべてのタッチをトラップします。これは通常の設定とは逆です。

UITableViewはscrollviewを使用するため、UIView自体に到達する前にscrollviewがタッチをトラップしている可能性があります。

これをテストするには、UIViewを「上」に配置することをお勧めします。つまり、通常のビューのサブビューにして、レスポンダーチェーンを希望どおりに機能させることをお勧めします。次に、下部/スーパービューをUITableViewと交換して、それがまだ機能するかどうかを確認します。

そうでない場合、問題はテーブルが埋め込まれているスクロールビューです。その回避策はわかりません。

于 2010-02-20T17:41:10.740 に答える