iOSアプリでの画像素材の追加はassets.xcassets
フォルダの中に入れます。
この中に入れておけばメディアライブラリにも表示されるようになります。
iOSアプリで対応している画像形式
iOSアプリで対応している画像形式はPNG形式
とJPG形式
とPDF形式
が利用できます。
PNG形式
とJPG形式
はビットマップ系のデータで、色情報をもったドットの集まりで画像を描画しています。
なので、PNG形式
においてはiOS端末の画像解像度(画面のピクセル粒度・密度)によって対応した倍率の画像(例)xxx.png
、xxx@2x.png
、xxx@3x.png
)を用意します。
画像解像度に対応していない画像のみだと、画像がにじんだようになります。
iOS端末種類 | 対応した画像倍率 |
---|---|
iPhone3Gまでの画像 | xxx.png (1倍) |
iPhone4以降でiPhone6s Plus、iPhone7s Plus以外 | xxx@2x.png (2倍) |
iPhone6s Plus、iPhone7s Plus | xxx@3x.png (3倍) |
PDF形式
はベクターデータと呼ばれるもので、数学的な計算式で描画しているデータなので拡大・縮小しても画像が劣化しないという特徴があります。
なのでxxx.png
、xxx@2x.png
、xxx@3x.png
のような画面解像度に合わせた画像ファイルを用意する必要はありません。(1倍のPDF画像を用意するのみ)
Xcodeに画像素材を追加
Xcodeプロジェクトに画像素材を追加する場合は下図のようにXcodeプロジェクトを開いてAssets.xcassets
を選択して、下図のエリアにドラックすれば追加されます。
画像の利用方法
Xcodeプロジェクトに追加した画像ファイルはImageView
として画面に配置したり、Button
の背景画像として利用したりできます。
ImageViewとして配置(IB)
Storyboardから下図のようにMedia Library
のボタンをクリックすればプロジェクトに追加されている画像が表示されますので、それをStoryboardのViewControllerにドラックすればImageViewとして配置されます。
ドラックした初期状態だと、画像の拡大縮小すると、画像の大きさはしない状態でImageViewの領域を拡大・縮小します。
ImageViewの拡大・縮小に伴い、画像もその領域に追随して拡大・縮小させたい場合にはContent Mode
をAspect Fit
にすれば実現できます。
また、ImageViewをプログラムで配置する場合は下記のように記述します。
ImageViewとして配置(プログラム)
※ Xcode8、Swift3.0でプログラミングしています。
ViewController.swift
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// ImageView配置
let imageView = UIImageView()
imageView.frame = CGRect(x: 0, y: 0, width: 200, height: 200)
imageView.center = self.view.center
imageView.image = UIImage(named: "businessman")
imageView.contentMode = .scaleAspectFit
self.view.addSubview(imageView)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}