0

パン、ピンチ、回転などのジェスチャ認識機能を使用して、UIImageView内でUIImageを操作することは可能ですか?

UIImageのジェスチャレコグナイザーを定義しようとすると、次のようなエラーが発生します。

表示されるUIImageは「addGestureRecognizer:」をサポートしていません

このコードで:

UIRotationGestureRecognizer *rotateGesture = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotateImage:)];
[imageStrip addGestureRecognizer:rotateGesture];

UIImageViewを変換せずにUIImageView内でUIImageを変換する方法はありますか?

4

2 に答える 2

5

ジェスチャレコグナイザーをあらゆる種類に追加でき、イベント処理メソッドで、新しく作成したにUIView再描画できます。このコンテキストは、で変換する必要があります。これは、ジェスチャ認識機能から受け取るパラメータと一致するパラメータで呼び出されます。それは難しい方法です。UIImageCGContextRefCGContextRotateCTMCGContextScaleCTMCGContextTranslateCTM

または、画像にスクラッチUIImageViewを作成し、ジェスチャレコグナイザーで変換してから、にレンダリングしてCGContextRef、変換された画像をこのコンテキストから外すことができます。

確かに実行可能ですが、些細なことではありません。

于 2012-11-22T19:41:12.637 に答える
2

UIGestureRecognizerUIView-にのみアタッチできます。UIImageの子孫ではありませんUIView

これは、UIView(またはその子孫)がタッチを受け取ることができるためです-UIImageできません。

ビューにジェスチャ認識機能がアタッチされているを参照してください。

UIImageユーザーが操作を完了した後、パラメーターに基づいて再計算/再レンダリングできます。これを行う方法について:それは本当にあなたが達成したいことに依存します。

于 2012-11-22T19:33:03.607 に答える