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

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

Swift 5.1
Xcode 11.3.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

一人でアプリ開発の限界を感じたら

アプリ開発を始めたけどわからないところがあり、誰かに聞きたいけど周りにはそんな人はいない…あるいは、会社で働いていて日中そんなに時間をとれないなど、オンライン・スクールがいいと思います。


TECH ACADEMY
自宅にいながら1時間でプログラミング基礎を習得

こういうものではアプリ作れないと言う意見もありますが、それは結局本人のやる気があるかないかです。やる気があっても独学では突破しにくいところは教えてもらうのが一番早い。


侍エンジニア塾
侍エンジニア塾 無料体験レッスン



とても簡単なことなのに本やネットの画像だけでは分かりにくいことはあります。実際に質問してピンポイントで教えてもらうと、なんだそんなこと、と言うのがけっこうあります。


CodeCamp
~約20,000名の受講生と300社以上の導入実績~
現役エンジニアのオンライン家庭教師CodeCamp




直接(ネットで)誰か分かる人に聞いた方が早く解決して、上達も早いと思います。


無料で転職まで
これはiOSアプリ限定ではありませんが無料です
その代わり就職することを前提にしたスクールでエンジニアになって職を得たいのであれば手っ取り早いかもしれません


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


シェアする

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

フォローする