[iPhone] CGAffineTransform 画像を回転、移動、反転させる

画像を移動、回転、反転、拡大するために CGAffineTransform を使います。これはマトリックス、行列式を使って画像を自由自在に変形させることができるのです。

CGAffineTransform

Xcode 13.4.1

CGAffineTransform

UIViewをアフィン・マトリクス変換を使って回転、拡大縮小、移動処理ができます。

  • 回転:init(rotationAngle: CGFloat)
    • CGAffineTransform(rotationAngle: CGFloat(angle))
  • 拡大・縮小:init(scaleX: CGFloat, y: CGFloat)
    • CGAffineTransform(scaleX: A, y: B)
    • AあるいはBを負の値にすると反転になります
  • 移動:init(translationX: CGFloat, y: CGFloat)
    • CGAffineTransform(translationX: C, y: D)

例えば UIImageView のインスタンスimageViewを拡大する例では
UIImageViewのtransformにAffine変換を設定します。

画像の設定

サンプル画像をAssetsフォルダに入れます。

コードの記述

それぞれのAffine変換を試したサンプルコードです。
Storyboard にボタンを配置して、ボタンを押すたびにメソッドを順番に実行するアプリとなっています。
ViewController

storyboardの設定

Main(storyboard)にImageView, Label, Buttonをそれぞれ
背景色などを(好みですが)設定します。

それぞれ紐付けします。View Controllerから見ると、OutletsにimageViewとlabel、Received Actions にButtonが設定され接続されているのがわかります。(これは紐付けし後です)




ビルドして実行させて見ましょう。

関連ページ:

References:
CGAffineTransform — Core Graphics | Apple Developer Documentation
UIImageView — UIKit | Apple Developer Documentation
UIImage — UIKit | Apple Developer Documentation