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

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

Swift 4.2.1
Xcode 10.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を配置して、背景色を(好みですが)設定します。
UIImageViewは後で設定する画像のアスペクト比(縦横比)にする方が望ましいですが
 

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

画像の設定

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

 

コードの記述

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

 
これでstoryboardのImageView, Label, Buttonをそれぞれ
imageView, label, buttonWidthSenderに紐付けします。

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

 
 
関連ページ:

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

スマホの下取り

まだ1年も使っていないスマホを新機種に変えたくて下取りしようとお店に持ち込んだことがありますが
結局なんだかんだと思ったほどの金額になりませんでした(涙

このネットオフは専業のため高額買取が可能で、お店に行く時間が無い人にとっては送料無料の宅配便が自宅まで引取りに来てくれるのは助かります。

定額買取キャンペーン中であればキズがあっても付属品が無くても減額無しなのでお得です。」


 

 

誤字脱字、意味不明などのご意見は 謙: e-mail まで
ブックマークしておくと便利です このエントリーをはてなブックマークに追加
Twitter:




Apple Watch Series 4
44mm
(GPS)/(GPS+Cellular)
スペースグレイアルミニウムケース
ブラックスポーツバンド




ページのトップへ戻る

シェアする

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

フォローする