2010-12-17 12 views
0

UIView内にいくつかのUIコンポーネントが含まれているUIView全体をアニメーション化する方法を見つけたいと思います。UIView全体のジェスチャ認識ツール

UIRotationGestureRecognizer *rotationGesture = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotatePiece:)]; 
[piece addGestureRecognizer:rotationGesture]; 
[rotationGesture release]; 

「作品」は、私が回転したいここにUIViewのであり、それは完全に正常に動作します:ここに私のコードスニペットです。しかし、他のUIコンポーネント(UIbuttonなど)をその中に追加すると(ピース表示)、ユーザーがこれらのUIコンポーネントに触れるとジェスチャが正しく認識されません。基本的には、ユーザーが子オブジェクトにタッチしても、親がジェスチャを聴きたいと思っています。

アイデア?

答えて

0

あなたのビューに追加するサブビューにGestureRecognizerを追加するだけです。回転ピース法の場合と同様に、元のビューのみを回転させている可能性がありますので、正常に動作します。

+0

しかし、私は一般的な方法でピースメソッドを使用します。つまり、ハンドラからUIviewオブジェクトを取得します:[gestureRecognizerビュー]。あなたの提案では、ここで間違ったUIViewを取得します。 – Ankit

+0

あなたの要件があなたのメインのスーパービューの回転だけで、あなたの回転ピースの方法の実装を変更するよりも、送信者を使ってそれを一般的に保たないなら、-void rotatepiece {}として宣言してください。ジェネリックである。メソッドを呼び出す送信側オブジェクトのタイプをチェックし、それに応じてビューを回転させることができます –

0

透明なUIViewを追加して、領域全体をカバーし、そこにジェスチャ認識機能を追加することができます。

+0

しかし、元のUIViewを動かすジェスチャリスナーには役に立たないでしょうか?私はおそらく元のUIViewの参照をどこかで作成する必要があります – Ankit

関連する問題