[iPhone] 画像UIImageViewをSwiftコードで設定する


iOSアプリで画像を表示させるには UIImageView を使います。Appleの場合、Retina ディスプレーでより綺麗に見せるためにサフィックスで@2x, @3xなどを付けます。

Swift 5.1
Xcode 11.3.1

 

UIImageView

 
ImageView クラスは画像のコンテナを提供するものです。
また、今回はStoryboardを使わず動的に画像を表示することを想定していますが、ストーリーボードを使った画像の表示 もできます。

SuftUIでの画像の設定は以下を参照してください

画像をSwiftUIで扱うにはImageを使います。円形のクリッピングや影などが簡単に作れます。

 

事前作業

 
コードで画像を表示させる事前作業として、画像をプロジェクトに追加します。

  • 右クリックでメニューの [Add Files to “xxx”…] を選択 ファイルを選んで 追加します。
  • 画像ファイルの例として serina@2x.jpg(1125 x 2436pix) の画像をプロジェクトに追加します。
     
    screen-shot-2016-09-16-at-13-11-20

1125 x 2436pixですがRetinaの高解像度に合わせるためにサフィックスの@2xを付けます。
 

 

  • 画像をprojectに追加するにはAssets.xcassetsに入れる方法もあります。画像を画像ファイルを Assets.xcassetsフォルダーに入れると2xのスペースに設定されました。


 

 

サンプルコード

 

  • 画像をプロジェクト内に置きましたので、それを取得するのですがUIImageを使って画像名からインスタンスを作成します。
  • その後UIImageViewのオブジェクトに画像を設定させるという、2段階での設定です。
  • storyboardを使わないので、スクリーンサイズと画像サイズを取得しその比率で表示枠を決めて中心位置に設定させます。
  • storyboardではこの作業はいりませんが、逆に最近端末種類が増えたのでそれぞれのサイズでも中央に来るような対策をする必要もあります。

ViewController.swift

 

 

実行結果

 

 
Safe Areaを無視して画面いっぱいにしましたが、実際にはAppleのガイダンスに準じてください。

iPhone X以降では画面のアスペクトレシオが 2:1 の横長モデルも発売され、SafeAreaという概念が登場しました。四隅は角丸、上下...

スクリーンサイズに合わせて拡大縮小することもできます。
画像の拡大縮小
 
あるいは最初から静的に決まっているのであればStoryboard上で設定する方が簡単です。
 
 
関連ページ

References:
UIImageView – UIKit | Apple Developer Documentation
UIImage – UIKit | Apple Developer Documentation
 

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

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


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

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


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



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


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




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


Play Ground
本業と並行してやるには月額制なのがありがたいです。


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


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


シェアする

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

フォローする