[iPhone] UIImageView 画像を拡大縮小させる

画像の拡大縮小は CGAffineTransform を使うこともできますが、CGRectを使って手軽に拡大・縮小する方法について考えてみます。


Xcode 13.4.1

CGRect  画像のサイズ変更、拡大縮小

基本的なコンセプトは画像の 幅、高さ を取得し、それにスケールファクターを掛けて拡大と縮小の画像を表示させます。

CGRectは位置とサイズの両方を管理するクラス、CGRectの引数として開始位置 x,y と幅と高さを設定します。
例として、始点座標が(0,0)で横幅が200、縦幅300の矩形領域を設定するとこうなります。

これをImgeViewのframeに設定し画像をセットします。

例えばこのframeを2倍、1/2にリサイズすればいいわけです。(ここでは画像の縦横比アスペクト比はそのままとします。)

  1. 画像の横幅を取得
  2. 画像サイズのCGRectを作成
  3. UIImageViewのframeに設定して画像を入れる
  4. 画像を拡大するには、このCGRectをアスペクト比を維持して大きくする

実際のコードではこうなります

ViewController.swift


sample_image.jpg 画像を用意して、Retinaに対応させるために 「@2x」を名前に追加

Assets にコピペします。



ビルドして実行してみましょう。

画像の拡大・縮小はCGAffineTransformを使っても可能です。
CGAffineTransform:画像を回転、移動、反転


関連ページ

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