2011-09-15 8 views
1

サブビューと同じコンポーネントを保持できる2つのビューコントローラがあります。親ビューでのみUIGestureRecognizerを取得する

コンポーネントは、UIDragGestureRecognizerの処理を実装します。

コントローラAもドラッグジェスチャを処理します。は、コンポーネントのデフォルトのドラッグ動作であるを上書きする必要があります。

コンポーネントがコントローラBのサブビューの場合、コンポーネントがドラッグイベントを捕捉したいが、コントローラAのサブビューの場合はドラッグイベントを捕捉したくないという問題があります。

controllerA.viewにUIDragGestureRecognizerを追加すると、コントローラーとコンポーネントの両方が私にとって悪いドラッグイベントを受け取ることになります。

コントローラーAのサブビューの場合、コンポーネントがドラッグイベントを受け取らないようにするにはどうすればよいですか? (初期化時にコンポーネントにUIGestureRecognizerを追加していますが、その時点ではまだどのコントローラがそれを保持しているのかわかりません)。

答えて

0

[コンポーネントremoveGestureRecognizer:component.myGestureRecognizer];

+0

このソリューションには2つの問題があります。まず、gestureRecognizersがコンポーネントのサブビューの1つ(特にUITableView用)に設定されていることです。 2番目の問題は、コンポーネントのジェスチャ認識プログラムがロード時に初期化され、コンポーネントをジェスチャ認識プログラムに反応しないように、コンポーネントを削除してコントローラBに表示する場合です。 – adamsiton

関連する問題