質問

次のコードを使用して、画像を90度回転させる必要があります

CGAffineTransform transform = CGAffineTransformMakeRotation(PI/2);
shape.transform = transform;

ここで図形はUIImageviewです。

問題は、回転ボタンをクリックするたびに、元の位置から回転することです。新しい位置から回転させます。

iPhoneプログラミングは初めてですが、非常に基本的なものが欠けている場合はおifび申し上げます。よろしくお願いいたします。

ケダー

役に立ちましたか?

解決

このローテーションをアニメーション化しようとしている場合は、誰かがしようとしていたこの質問に対する私の答えビューの増分回転をアニメーション化します。 CABasicAnimationsを使用したトランスフォームのインクリメンタルアニメーションは、予想よりも少し複雑です。最初に、presentationLayerからUIViewレイヤーの現在の変換を読み取り、それをfromValueとしてアニメーションにフィードする必要があります。

ただし、あなたの場合、ビューの変換プロパティをアニメーション化するためにUIViewアニメーションブロックを使用しているようです。作成したコードは、ビューのトランスフォームを同じ90度回転に設定し続けるだけで、ビューを90度ずつ段階的に回転させることはありません。増分回転を行うには、次のようなものが必要だと思います:

CGAffineTransform transform = CGAffineTransformRotate(shape.transform, M_PI / 2.0f);
shape.transform = transform;

これは、ビューの現在の変換を取得し、それを90度回転してから、結果の変換をビューに適用します。繰り返しますが、これはCABasicAnimationsの場合と同じ問題に遭遇する可能性があります。その場合、上記のリンクされた回答を参照する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top