2

私は PinchGestureRecognizer と RotationGestureRecognizer を両方とも正常に使用しています。コードは次のとおりです。

- (IBAction)pinchDetected:(UIPinchGestureRecognizer *)recognizer {

    recognizer.view.transform = CGAffineTransformScale(recognizer.view.transform, recognizer.scale, recognizer.scale);
    recognizer.scale = 1;
}


-(IBAction)rotationDetected:(UIRotationGestureRecognizer *)recognizer
{
    recognizer.view.transform = CGAffineTransformRotate(recognizer.view.transform, recognizer.rotation);
    recognizer.rotation = 0;
}

このコードを使用すると、ビューをピンチしたり回転したりできます。しかし、「リセット」ボタンをクリックすると、ビューのフレームをピンチまたは回転する前の状態に設定したいと思います。

そのために私は使用しています

[viewTwo setFrame:CGRectMake(80.0f, 65.0f, 160.0f, 101.0f)];

しかし、私のフレームは設定されていません。

ビューのフレームをピンチしてズームする前と同じように設定するにはどうすればよいですか?

4

2 に答える 2

4

ジェスチャ認識機能でフレームを変更していません。

トランスフォームを ID に割り当てる必要があります。

recognizer.view.transform = CGAffineTransformIdentity;
于 2012-12-11T07:56:19.327 に答える
0

フレームと変換は、2 つのまったく異なる方法でビューに適用されます (ここで、フレームはビューに適合する最小の四角形であり、変換はビューの基礎となる 2-D マトリックスの表現です)。ビューを以前のサイズに戻したい場合は、 に割り当てrecognizer.view.transformますCGAffineTransformIdentity

于 2012-12-11T07:55:25.440 に答える