Xcode UIViewに背景画像を設定する2つの方法

UIViewの背景として画像を使用する際に、iPhone/iPadの画面サイズに合わせて画像を拡大・縮小するパターンと、画像のサイズをそのまま活かすパターンの2種類のコードの書き方があったのでメモ。

f:id:kojikoji75:20141116001506j:plain
photo credit: visualpanic via photopin cc

サマリー

1.iPhone/iPadの画面サイズに合わせて画像を拡大・縮小する書き方
2.画像のサイズをそのまま活かす書き方
3.まとめ

1.iPhone/iPadの画面サイズに合わせて画像を拡大・縮小する書き方

例えば以下の様なの素材画像Sample001.png(860*1000)があるとする。(わかりやすく空の画像を使用)

f:id:kojikoji75:20141116001828j:plain

iPhone/iPadの画面サイズに合わせて画像を拡大・縮小するようにするには、その画像ファイルをプロジェクトに追加した上で下記のように書く。

//iPhone/iPadの画面サイズに合わせて画像を拡大・縮小する
UIGraphicsBeginImageContext(self.view.frame.size);
[[UIImage imageNamed:@"Sample001.png"] drawInRect:self.view.bounds];
UIImage *backgroundImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
self.view.backgroundColor = [UIColor colorWithPatternImage:backgroundImage];

するとこのように画面サイズに合わせて拡大・縮小される。(下図はiPhone6シミュレータ)

f:id:kojikoji75:20141116002103p:plain

2.画像のサイズをそのまま活かす書き方

一方、下記のように書くと、画面サイズは無視され画像サイズがそのまま活かされる。

//画像のサイズをそのまま活かす
UIImage *backgroundImage=[UIImage imageNamed:@"Sample001.png"];
self.view.backgroundColor=[UIColor colorWithPatternImage:backgroundImage];

結果、下図のようになる。

f:id:kojikoji75:20141116002114p:plain

3.まとめ

個人的に試してはみたものの、上記のどちらの方法も自分のプロダクトに使用する機会はないだろう。背景画像を使う場合は、存在するiPhoneサイズ分の画像を用意し、実機の画面サイズによって条件分岐させるのが今のところ賢明のような気がする。

以上

Swiftではじめる iPhoneアプリ開発の教科書 【iOS 8&Xcode 6対応】

Swiftではじめる iPhoneアプリ開発の教科書 【iOS 8&Xcode 6対応】

iOS7開発テクニック集 Xcode編

iOS7開発テクニック集 Xcode編

タイトルとURLをコピーしました