6

2つのスワイプジェスチャレコグナイザー(左にスワイプと右にスワイプ)をに追加しましたUITableView。その後、テーブルビューのスクロールが停止しました。同時に正常に-(void)didSelectRowAtIndex動作します。何が問題なのでしょう?

私が行ったのは、オブジェクトライブラリからUITableViewにスワイプジェスチャ認識機能をドラッグアンドドロップすることだけです。

それらを削除すると、テーブルが再びスクロールし始めます。

UPD:

これは、Xcode4.5にアップグレードした後に発生します。古いバージョンのXcodeではそのような問題はありません。この動作を回避するUIGestureRecognizersには、IBではなくプログラムで追加します。

4

4 に答える 4

6

以下のコードを試してみてくださいこれはあなたを助けるかもしれません....viewDidLoad:メソッドで以下のコードを書いてください

UISwipeGestureRecognizer *swipeGestureObjectImg = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(yourSlideOpen_Clicked:)] autorelease];//yourSlideOpen_Clicked is method name where you doing something
swipeGestureObjectImg.numberOfTouchesRequired = 1;
swipeGestureObjectImg.direction = (UISwipeGestureRecognizerDirectionLeft);
[yourView addGestureRecognizer:swipeGestureObjectImg];

UISwipeGestureRecognizer *swipeGestureRightObjectImg = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(yourSlideClose_Clicked:)] autorelease];//yourSlideClose_Clicked is method name where you doing something
swipeGestureRightObjectImg.numberOfTouchesRequired = 1;
swipeGestureRightObjectImg.direction = (UISwipeGestureRecognizerDirectionRight);
[yourView addGestureRecognizer:swipeGestureRightObjectImg];

ここでtableviewがUIViewクラスのサブビューである場合は、上記のコードを使用します。それ以外の場合は、「yourView」の代わりに「youtTableview」を試してください。

これがお役に立てば幸いです...

:)

于 2012-09-14T11:24:48.810 に答える
1

ジェスチャレコグナイザーのプロパティを設定しますcancelsTouchesInView=NO

于 2012-09-14T11:19:24.100 に答える
1

同じ問題がありました。コードを使用して作成するのではなく、TabGestureRecognizerをストーリーボードに直接ドラッグしていました。iOS6では、これでスクロールが壊れるようになりました。

コードではなく、ストーリーボードにビューやジェスチャーなどを直接追加することを好みます。

これは引き続き実行できますが、2つの変更があります。

1)アウトレットコレクションの参照

  • シーンのドック内に表示されているGestureRecognizerを右クリックします。
  • アウトレットコレクションの参照セクションをクリアします

2)コードを介してGestureRecognizerを関連するビューにアタッチします

  • GestureRecognizerのアウトレットを作成します
  • viewDidLoadメソッド内に次の行を追加します。

    [self.tableView addGestureRecognizer:_tabGesture];

于 2012-10-02T13:31:08.523 に答える
0

私はこれと同じ問題に直面し、ジェスチャレコグナイザーをテーブルビューではなくビューにリンクすることで問題を解決しました。

  1. ストーリーボードを表示します。
  2. 接続インスペクターを表示します。
  3. ドキュメントのアウトラインを表示します。
  4. 「アウトレットコレクションの参照」で、ジェスチャレコグナイザとビューコントローラの下のビューノードの間に新しいリンクを作成します。

よろしく。ペドロ。

于 2013-06-18T18:28:21.680 に答える