画像を移動、回転、反転、拡大するために CGAffineTransform を使います。これはマトリックス、行列式を使って画像を自由自在に変形させることができるのです。
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が設定され接続されているのがわかります。(これは紐付けし後です)
ビルドして実行させて見ましょう。
関連ページ:
- 画像UIImageViewをSwiftコードで設定する
- ストーリーボードを使った画像 UIImageView の設定
- 画像の拡大縮小 (CGRect)
- CGAffineTransform:画像を回転、移動、反転
- アニメーション(パラパラマンガ)
- Image, Text の合成
- 画像をドラッグさせる
- UIImage の使い方
- 画像をぼかす、モザイク化する
- CABasicAnimationを使たアニメーション
- cornerRadiusを使って画像を角丸にする
References:
CGAffineTransform – Core Graphics | Apple Developer Documentation
UIImageView – UIKit | Apple Developer Documentation
UIImage – UIKit | Apple Developer Documentation