2

UIRotationGestureRecognizerのために実装しようとしていUIImageViewます。

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

[self.view addGestureRecognizer:rotateGesture];

そしてセレクターメソッドでは、私はこれをしていません

-(void)rotate:(UIRotationGestureRecognizer *)gesture
{

    if ([gesture state] == UIGestureRecognizerStateBegan || [gesture state] == UIGestureRecognizerStateChanged) {
        selectedImage.transform=CGAffineTransformRotate(selectedImage.transform, gesture.rotation);

        [gesture setRotation:0];
    }

}

上記のコードで、画像は回転しています。しかし、問題は、イメージセンターが変更されていることです。それで、画像の回転は少しぎこちなく見えます。

画像の最初の中心は次のとおりです(277,653) 。回転している間、値は増加し(365,659) 、その後、に戻り(277,653)ます。

理由は何でしょうか?センターを修正する方法は?UIImageView使用の中心で画像を回転させるにはどうすればよいUIRotationGestureRecognizerですか?

4

1 に答える 1

4

使ってみて

recognizer.rotation = 0;

これがチュートリアルです。それが役に立てば幸い

リンク

于 2012-10-30T12:29:47.663 に答える