UIImageViewを段階的に回転させるにはどうすればよいですか?
-
06-07-2019 - |
質問
次のコードを使用して、画像を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の場合と同じ問題に遭遇する可能性があります。その場合、上記のリンクされた回答を参照する必要があります。
所属していません StackOverflow