3

ECSliding フレームワークを使用してアプリケーションを開発しています。UItableViewControllerをとして追加するまで、すべてがうまくいっていましたtopViewController。静的テーブル ビューをスクロールしようとすると、エラーが発生します。問題の場所は特定できましたが、解決方法がわかりません。次のコマンド(viewDidLoadメソッドで宣言)を削除すると、UITableView通常どおりスクロールが開始されます。

 [self.view addGestureRecognizer:self.slidingViewController.panGesture];

UITableViewController を topViewController として設定するために使用されるコード

 self.topViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"Driver"];

topViewControllerからのプロパティです。ECSlidingViewController

別の投稿で別の同様の質問を見つけましたが、そこで、男は をUINavigationControllerとして使用していましたtopViewController

手を貸してくれる人がいたら教えてください。

ありがとう、マルコス。

4

1 に答える 1

1

あなたはあなたの問題を解決したようですが、コメントごとに他の人もこの解決策を探しているので、これについていくつかの情報を提供します.

ここでの問題は、UITableViewサブクラスにパン ジェスチャを追加すると、スクロールに使用される現在のジェスチャが台無しになることです。パンすると、目的がわからなくなり、一貫性のない動作 (または望ましくない動作) になる可能性があります。

実際のニーズに応じて機能する可能性のあるいくつかの異なるソリューションがあります。


1 :

になっUIGestureRecognizerDelegateたら、メソッドを実装できます。

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
    return TRUE;
}

これにより、複数のジェスチャをリッスンできます。ジェスチャのデリゲートをに設定していることを確認してくださいself

2 :


新しいジェスチャを実装する方向を指定すると、スクロールの問題が発生しなくなる可能性があります。

   UISwipeGestureRecognizer* swipe;

   swipe = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeL)] autorelease];
   swipe.direction = UISwipeGestureRecognizerDirectionLeft;
   [view addGestureRecognizer:swipe];

   swipe = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeR)] autorelease];
   swipe.direction = UISwipeGestureRecognizerDirectionRight; // default
   [view addGestureRecognizer:swipe];

明らかにこれはスワイプを使用していますが、簡単に変更できます。これは、垂直方向のジェスチャについて心配する必要がなく、テーブルがデフォルトの動作を継続できることを示しています。ただし、複数のジェスチャをリッスンすることを確認するために、デリゲート メソッドを ONE に実装する必要がある場合があります。

于 2013-10-30T13:43:16.120 に答える