TechNote

事務屋のおぼえがき

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サイズ分の画像を用意し、実機の画面サイズによって条件分岐させるのが今のところ賢明のような気がする。

以上



あわせて読みたい

Xcodeでオブジェクトの上下配置を前面移動/背面移動する3つの方法 - TechNoteXcodeでオブジェクトの上下配置を前面移動/背面移動する3つの方法 - TechNote

Xcodeで、エクセルやパワポみたいにオブジェクトを「前面に移動」「背面に移動」するにはどうしたらいいか?3通りのやり方があったのでメモを残す。photo cr...

Xcodeで角丸設定cornerRadiusがきかない場合の対応方法 - TechNoteXcodeで角丸設定cornerRadiusがきかない場合の対応方法 - TechNote

photo credit:camflanviaphotopinccvar show_width = document.documentElement.clien...

Xcode iOSシミュレータで enable to run app in Simulator エラー - TechNoteXcode iOSシミュレータで enable to run app in Simulator エラー - TechNote

photo credit:Sean MacEnteeviaphotopinccサマリー1.現象2.対応方法3.リセットはこんなときも役に立ったvar show_...



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

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

iOS7開発テクニック集 Xcode編

iOS7開発テクニック集 Xcode編