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

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

Swift 4.0
Xcode 9.0.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変換を設定します。
 

 

storyboardの設定

 
UIImageView、 UILabel、 UIButtonを配置して、背景色を(好みですが)設定します。
 

 
View Controllerから見ると、OutletsにimageViewとlabel、Received Actions にButtonが設定され接続されているのがわかります。
 

画像の設定

 
Assets.xcassets フォルダに@2xの画像を入れます。
 

 

コードの記述

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

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

 
 
関連ページ:

 
Reference:
CGAffineTransform – Core Graphics | Apple Developer Documentation


ページのトップへ戻る

シェアする

  • このエントリーをはてなブックマークに追加

フォローする