質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

954閲覧

CGAffineTransformで回転させた画像をもとに戻す回転方向の指定はできますか?

退会済みユーザー

退会済みユーザー

総合スコア0

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2019/12/22 08:32

編集2019/12/22 10:23

CGAffineTransformで画像(UIButtonのimageView)を回転させ、もとに戻す処理を以下のコードで行っているのですが、初期状態に戻す処理を反時計回りで行うことはできないでしょうか?

swift

1func rotateBtnImage() { 2 3 let transAngle = 180 * CGFloat.pi / 180 4 let transRotate = CGAffineTransform(rotationAngle: transAngle) 5 6 if dataSource.showsContents { 7 // もとに戻す(時計回りでもとに戻る ← 反時計回りでもとの画像に戻したい) 8 UIView.animate(withDuration: 0.5) 9 self.btn.imageView?.transform = .identity 10 self.contentView.layoutIfNeeded() 11 } 12 } else { 13 // 回転させる(時計回りで180度回転) 14 UIView.animate(withDuration: 0.5) { 15 self.btn.imageView?.transform = transRotate 16 self.contentView.layoutIfNeeded() 17 } 18 } 19 }

イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

rotationAngleにマイナス値を指定すると反時計回りに回転しますので、-360度を指定して回転させるとよいと思います。

投稿2019/12/22 16:03

TakeOne

総合スコア6299

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/12/23 20:58

回答ありがとうございます。.identityにオプションなどはないようなので、 マイナスで逆回転させ、任意の角度から初期値に戻す処理は別の場所で行う方向で行こうと思います。
TakeOne

2019/12/24 08:07 編集

最終的に.identityにしたいのであれば、アニメーション完了後に.identityを設定すればいいです。 http://www.project-unknown.jp/entry/ios-indicator にあるように、アニメーションブロックの中でrotationと.identityを続けて設定してもうまくいくようです。
退会済みユーザー

退会済みユーザー

2019/12/24 05:00

回答ありがとうございます。 .identityという記述だけでどの角度からでも初期値に戻せるので、任意の角度から戻す場合も同じ箇所を通せばよくて使いやすいと思ったのですが、時計回りしかしないようですね。 回転方向を指定した場合は、completionブロックで使ったり、場合によって使い分けようと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問